69 lines
1.7 KiB
TypeScript
69 lines
1.7 KiB
TypeScript
|
import Taro from '@tarojs/taro';
|
|||
|
|
|||
|
function sharePage(opts: any = {}) {
|
|||
|
|
|||
|
// 设置默认
|
|||
|
const defalutPath = 'pages/index/index?';
|
|||
|
const defalutTitle = '';
|
|||
|
|
|||
|
return function demoComponent(Component) {
|
|||
|
class SharePage extends Component {
|
|||
|
async componentWillMount() {
|
|||
|
Taro.showShareMenu({
|
|||
|
withShareTicket: true
|
|||
|
})
|
|||
|
if (super.componentWillMount) {
|
|||
|
super.componentWillMount();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// 点击分享的那一刻会进行调用
|
|||
|
onShareAppMessage() {
|
|||
|
// const { userInfo } = this.props;
|
|||
|
|
|||
|
let { title, imageUrl, path = null } = opts;
|
|||
|
|
|||
|
// 从继承的组件获取配置
|
|||
|
if (this.$setSharePath && typeof this.$setSharePath === 'function') {
|
|||
|
path = this.$setSharePath();
|
|||
|
}
|
|||
|
|
|||
|
// 从继承的组件获取配置
|
|||
|
if (this.$setShareTitle && typeof this.$setShareTitle === 'function') {
|
|||
|
title = this.$setShareTitle();
|
|||
|
}
|
|||
|
|
|||
|
// 从继承的组件获取配置
|
|||
|
if (
|
|||
|
this.$setShareImageUrl &&
|
|||
|
typeof this.$setShareImageUrl === 'function'
|
|||
|
) {
|
|||
|
imageUrl = this.$setShareImageUrl();
|
|||
|
}
|
|||
|
|
|||
|
if (!path) {
|
|||
|
path = defalutPath;
|
|||
|
}
|
|||
|
|
|||
|
// 每条分享都补充用户的分享id
|
|||
|
// 如果path不带参数,分享出去后解析的params里面会带一个{'': ''}
|
|||
|
const sharePath = `${path}`;//&shareFromUser=${userInfo.shareId}
|
|||
|
|
|||
|
return {
|
|||
|
title: title || defalutTitle,
|
|||
|
path: sharePath,
|
|||
|
imageUrl: imageUrl
|
|||
|
};
|
|||
|
}
|
|||
|
|
|||
|
render() {
|
|||
|
return super.render();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
return SharePage;
|
|||
|
};
|
|||
|
}
|
|||
|
|
|||
|
export default sharePage;
|