47 lines
1.3 KiB
TypeScript
47 lines
1.3 KiB
TypeScript
import { useEffect } from 'react';
|
|
import Taro, { useDidShow } from '@tarojs/taro';
|
|
import { captureIosJssdkEntryUrl } from '@dukang/weixin-sdk';
|
|
import { applyWechatShare, type PageSharePayload } from '../lib/wechat-share';
|
|
|
|
/**
|
|
* H5:进入页面时刷新微信分享卡片;
|
|
* 小程序:开启右上角分享菜单。
|
|
*/
|
|
export default function WechatShareReady({ payload }: { payload?: PageSharePayload }) {
|
|
useEffect(() => {
|
|
if (process.env.TARO_ENV === 'h5') {
|
|
captureIosJssdkEntryUrl();
|
|
}
|
|
}, []);
|
|
|
|
useDidShow(() => {
|
|
if (process.env.TARO_ENV === 'weapp') {
|
|
void Taro.showShareMenu({
|
|
withShareTicket: true,
|
|
showShareItems: ['shareAppMessage', 'shareTimeline'],
|
|
}).catch(() => {
|
|
void Taro.showShareMenu({ withShareTicket: true }).catch(() => {});
|
|
});
|
|
return;
|
|
}
|
|
void applyWechatShare({
|
|
title: payload?.title,
|
|
desc: payload?.desc,
|
|
imgUrl: payload?.imgUrl,
|
|
link: payload?.link,
|
|
}).catch(() => {});
|
|
});
|
|
|
|
useEffect(() => {
|
|
if (process.env.TARO_ENV !== 'h5') return;
|
|
void applyWechatShare({
|
|
title: payload?.title,
|
|
desc: payload?.desc,
|
|
imgUrl: payload?.imgUrl,
|
|
link: payload?.link,
|
|
}).catch(() => {});
|
|
}, [payload?.title, payload?.desc, payload?.imgUrl, payload?.link]);
|
|
|
|
return null;
|
|
}
|