/** * 小程序分享 * @param {object} options * @example * // 必须要调用onShareAppMessage,onShareTimeline才能正常分享 * // 因为小程序平台,必须在注册页面时,主动配置onShareAppMessage, onShareTimeline才可以 * // 组合式API是运行时才能注册,框架不可能默认给每个页面都开启这两个分享,所以必须在页面代码里包含这两个API的字符串,才会主动去注册。 * // 相关说明链接:https://ask.dcloud.net.cn/question/150353 * const {onShareAppMessage, onShareTimeline} = useShare({title: '分享标题', path: 'pages/index/index', query: 'id=1', imageUrl: 'https://xxx.png'}) * onShareAppMessage() * onShareTimeline() */ export default function useShare (options) { // #ifdef MP-WEIXIN const title = options?.title ?? "" const path = options?.path ?? "" const query = options?.query ?? "" const imageUrl = options?.imageUrl ?? "" const shareApp = (params = {}) => { onShareAppMessage(() => { return { title, path: path ? `${path}${query ? `?${query}` : ""}` : "", imageUrl, ...params } }) } const shareTime = (params = {}) => { onShareTimeline(() => { return { title, query: options?.query ?? "", imageUrl, ...params } }) } return { onShareAppMessage: shareApp, onShareTimeline: shareTime } // #endif }