export const useShare = (): UseShareInfoReturn => {
const routeInfo = useRoute();
const shareInfo = ref<ShareInfoInterface>({
path: routeInfo.value.path,
title: '发现一个有趣的小程序,快来看看吧',
desc: '',
imageUrl: '',
});
onShareAppMessage(() => {
const shareParams = {
...shareInfo.value,
fail: (err) => {
console.error('share miniapp failed:', err);
},
};
return shareParams;
});
}
在页面中调用 useShare,分享不生效;直接在页面中添加 onShareAppMessage 没问题
2 个回复
enderX (作者)
必须要在页面中显式引用 小程序分享的两个生命周期,才能生效
这样的使用方式很怪异,也不符合组合式api的风格,应该算是 bug 吧
DCloud_UNI_FXY
小程序平台,必须在注册页面时,主动配置onShareAppMessage, onShareTimeline才可以
组合式API是运行时才能注册,框架不可能默认给每个页面都开启这两个分享,所以必须在页面代码里包含这两个API的字符串,才会主动去注册。
enderX (作者)
const share = useShare();
('onShareAppMessage');
('onShareTimeline');
绝。其他小程序平台应该都是一样的吧?
有点反直觉,不考虑在文档中略作说明吗?
2022-08-04 18:29