支付寶小程序webview里的h5跳轉回小程序


支付寶小程序的webview支持重新跳轉回小程序原生頁面。

1、h5頁面手動引入 `https://appx/web-view.min.js` (此鏈接僅支持在支付寶客戶端內訪問);

2、直接調用 my.navigateTo 接口即可跳轉回小程序原生頁面

<script type="text/javascript" src="https://appx/web-view.min.js"></script>
<!-- 如該 H5 頁面需要同時在非支付寶客戶端內使用,為避免該請求404,可參考以下寫法 -->
<!-- 請盡量在 html 頭部執行以下腳本 -->
<script>
  if (navigator.userAgent.indexOf('AlipayClient') > -1) {
    document.writeln('<script src="https://appx/web-view.min.js"' + '>' + '<' + '/' + 'script>');
  }
</script>

<script>
  my.navigateTo({url: '../get-user-info/get-user-info'});
  // 網頁向小程序 postMessage 消息
  my.postMessage({name:"測試web-view"});
  // 接收來自小程序的消息。
  my.onMessage = function(e) {
    console.log(e); // {'sendToWebView': '1'}
  }
  // 判斷是否運行在小程序環境里
  my.getEnv(function(res) {
    console.log(res.miniprogram) // true
  });
  my.startShare();
</script>

3、my.postMessage 信息發送后,小程序頁面接收信息時,會執行 onMessage 配置的方法:

<!-- .axml -->
<view>
  <web-view id="web-view-1" src="..." onMessage="test"></web-view>
</view>
// 小程序頁面對應的 page.js 聲明 test 方法,
// 由於 page.axml 里的 web-view 組件設置了 onMessage="test",
// 當頁面里執行完 my.postMessage 后,test 方法會被執行
Page({
  onLoad(e){
    this.webViewContext = my.createWebViewContext('web-view-1');    
  },
  test(e){
    my.alert({
      content:JSON.stringify(e.detail),
    });  
    this.webViewContext.postMessage({'sendToWebView': '1'});
  },
});

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM