zoukankan      html  css  js  c++  java
  • 支付宝小程序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'});
      },
    });
  • 相关阅读:
    lua的数组下标是从1开始的
    DestroyImmediate的一些坑
    c#的IDisposable
    unity工具开发(转)
    winform控件命名规范对照表
    C#调用Exe程序示例
    System.Diagnostics.Process.Start的妙用
    C#中AppDomain.CurrentDomain.BaseDirectory及各种路径获取方法
    C# WindowsAPI
    TabPage判断重复添加Page
  • 原文地址:https://www.cnblogs.com/gavinjay/p/13359400.html
Copyright © 2011-2022 走看看