web-view 中的分享

当使用 web-view 组件时,用户从 A(h5) 页面跳转到了 B(h5) 页面。此时,用户在 B 页面发起分享,更可能的预期是分享 B 页面。但是,默认行为将打开 A 页面。此时,开发者可以做以下处理,让分享后打开 B 页面。

  • 针对小程序框架调起的分享

# 代码示例

// swan 文件
<web-view s-if="webViewUrl" src="{{webViewUrl}}"></web-view>
// js 文件
Page({
    data: {
        webViewUrl: ''
    },
    
    onLoad({webViewUrl}) {
        webViewUrl && this.setData({webViewUrl});
    },

    onShareAppMessage({webViewUrl}) {
        return {
            title: '分享回流示例',
            content: '默认会回到分享时的 url',
            path: `/pages/openShare/openShare?webViewUrl=${encodeURIComponent(webViewUrl)}`
        };
    }
});
  • 针对 H5 页面通过 openShare API 调起的分享
const webViewUrl = location.href;
swan.openShare({
    title: '智能小程序示例',
    content: '世界很复杂,百度更懂你',
    appKey: 'y3dTfnWfkx2OXttMEMWlGHoB1KzMogm7', // 可通过 开发者平台 -> 设置 -> 开发设置 中查看
    path: `/pages/openShare/openShare?webViewUrl=${encodeURIComponent(webViewUrl)}`
});