支付寶小程序的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'}); }, });
