web-view中的分享

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

  • 针对小程序框架调起的分享
  1. // swan 文件
  2. <web-view s-if="webViewUrl" src="{{webViewUrl}}"></web-view>
  1. // js 文件
  2. Page({
  3. data: {
  4. webViewUrl: ''
  5. },
  6. onLoad({webViewUrl}) {
  7. webViewUrl && this.setData({webViewUrl});
  8. },
  9. onShareAppMessage({webViewUrl}) {
  10. return {
  11. title: '分享回流示例',
  12. content: '默认会回到分享时的 url',
  13. path: `/pages/openShare/openShare?webViewUrl=${encodeURIComponent(webViewUrl)}`
  14. };
  15. }
  16. });
  • 针对 H5 页面通过 openShare API 调起的分享
  1. const webViewUrl = location.href;
  2. swan.openShare({
  3. title: '智能小程序示例',
  4. content: '世界很复杂,百度更懂你',
  5. appKey: 'y3dTfnWfkx2OXttMEMWlGHoB1KzMogm7', // 可通过 开发者平台 -> 设置 -> 开发设置 中查看
  6. path: `/pages/openShare/openShare?webViewUrl=${encodeURIComponent(webViewUrl)}`
  7. });