低版本Taro使用useShareTimeline
1. 修改依赖,需要在以下文件添加如下代码
javascript
// node_modules/@tarojs/taro/dist/index.js
// 在 useShareAppMessage 方法下面一行添加
function useShareTimeline(callback) {
usePageLifecycle(callback, 'onShareTimeline');
}
// 在底部导出
var index = {
// 这里有一堆原来的,只需要在 useShareAppMessage: useShareAppMessage 下面一行加一个
useShareTimeline: useShareTimeline,
}
// 这里有一堆原来的,只需要在 exports.useShareAppMessage = useShareAppMessage; 下面一行加一个
exports.useShareTimeline = useShareTimeline;
javascript
// node_modules/@tarojs/taro-weapp/dist/index.js
// 在 pageExtraFns 的定义中添加 onShareTimeline
var pageExtraFns = ['onPullDownRefresh', 'onReachBottom', 'onShareAppMessage', 'onShareTimeline', 'onPageScroll', 'onTabItemTap', 'onResize'];
// 在 Taro 的定义中导出
var Taro = {
// 这里有一堆原来的,只需要在 useShareAppMessage 下面一行加一个
useShareTimeline: taro.useShareTimeline,
}
==↑↑↑ 上面这一步,如果在该文件修改没有效果,试试修改同目录下的 index.esm.js 或者 taro.js,修改内容是一样的==
javascript
// node_modules/@tarojs/taro/types/taro.hooks.d.ts
// 添加 ts 类型,防止报错,ShareAppMessageObject 这个类型是我直接复制上面的,严谨的同学可以自己写
/**
* 分享到朋友圈
*/
function useShareTimeline(callback: (obj: ShareAppMessageObject) => any)
2. 需要分享的页面调用
javascript
useShareTimeline(() => ({
title: 'XXX商城',
// 最好有一个标识,分享到朋友圈中的小程序是单页模式,有很多限制,需要适配
query: `from=timeline`,
}));
3. 注意事项
单页文件遇到的问题,例如:
相关接口不进行静默授权,不能调用 Taro.login
后端需要对相关接口进行不校验登录权限