在页面内使用了onShareTimeline
方法,右上角内也出现了分享朋友圈的按钮,但是页面内的分享自定义内容却没有成功设置,分享出去还是默认的小程序名称。
原因:taro@3.0.3内缺失相应的类型定义,在设置分享朋友圈自定义内容时导致自定义内容失效。
![](https://img.haomeiwen.com/i6080416/18df41f23116bd6e.png)
解决:
方法一: 升级至3.0.3以上;
方法二:在global.d.ts
内添加缺失的类型定义,并在需要分享朋友圈的页面配置文件内添加enableShareTimeline: true
。
// global.d.ts
declare module '*.json' {
const value: any
export default value
}
declare module '@tarojs/taro' {
interface PageConfig {
/**
* 是否启用分享给好友。
*
* @default false
*/
enableShareAppMessage?: boolean
/**
* 是否启用分享到朋友圈。
*
* @default false
*/
enableShareTimeline?: boolean
}
}
// index.config.js
export default {
enableShareAppMessage: true,
enableShareTimeline: true
}
参考#7055: https://github.com/NervJS/taro/pull/7055
注:
设置自定义分享时query需要采用object的形式。
// 分享朋友圈
onShareTimeline(res) {
let { detail, user_info, is_myRep, work_pos } = this.state;
return {
// 这是我创作的第3幅作品,获得了5星评价,快来给我点赞吧
title: `这是我创作的第3幅作品,获得了5星评价,快来给我点赞吧`,
// query: `is_fromShare=true&id=${detail.id}`,
query: {is_fromShare: true, id: detail.id},
imageUrl: detail.work_img
};
}
效果:
![](https://img.haomeiwen.com/i6080416/5271197eb6b17660.png)
网友评论