zoukankan      html  css  js  c++  java
  • 小程序打开h5后返回与postmessage不实时接收问题

    前言背景

    最近开发个小程序需要有安全验证功能,大概业务流程就是 一进来小程序唤起安全验证页面 -> 然后点击确认发送给小程序端并关闭当前页面。看似比较简单但是踩了一下午坑

     

     

    webview

    onMessage

    经过查看找到啦webview api,可以打开一个h5页面,然后看了下webview 中的配置项

     

     

    发现onMessage方法可以接收postMessage的方法。开始撸码

    但是这个特定时机我确实没有立即理解上去,我以为和iframe差不多,是实时的,结果试了一下不行,才知道这个特定时机的关键。。。。

    解读特定时机“后退、组件销毁、分享”

    那么如何能达到这个特定时机呢?分享首先排除在外,所以只能思考如何实现组件销毁和后退,第一个思路就是h5怎么实现后退呢,或者跳转到某一页,所以发现可以在h5调用后退方法,但是后退只能是页面所以安全认证组件不能写在tabbar里面, 只能在写一个页面然后打开该页面才可以。

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Document</title>
      <script src="https://res.wx.qq.com/open/js/jweixin-1.3.2.js"></script>
    </head>
    <body>
      <button onclick="openBack()">点击我返回小程12</button>
    </body>
    <script>
      function openBack() {
        console.log('gggg')
        // wx.miniProgram.navigateTo('/pages/SecurityCheck/index')
        wx.miniProgram.postMessage({ 
    			data:  { 
    				name: 'name',
    				age: 12
    			}
    		})
        wx.miniProgram.navigateBack()
      }
    </script>
    </html>
    

      

    看到注释开始用了wx.miniProgram.navigateTo,开始以为直接跳转到某一个路由就可以了,但是事实证明还是不能够,因为我们要跳转的是tabbar页面,所以只需要后退就可以。

     

    本以为踩坑到此结束,但是点击死活没反应,小程序代码如下

    点击没反应就开始排查,最后发现是打开页面的方法有误。

     

    打开页面方式

    路由有以上几个方法

    • switchtab,跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面。因为打开是新的页面所以不行
    • relaunch, 开始我就用的这个方法,但是这个是关闭所有页面,打开到应用内的某个页面,所以他就没有上一页一说啦。

    ....

    所以最后找到了navigateTo方法,才算踩坑结束

     

     

    总结

    • 必须是打开一个新的页面,用navigateTo
    • postmessage后在h5中返回上一页。

     

  • 相关阅读:
    20175310 《Java程序设计》第11周学习总结
    20175310 《Java程序设计》第10周学习总结
    2018-2019-2 20175310 实验三《敏捷开发与XP实践》实验报告
    20175310 《Java程序设计》第9周学习总结
    类定义(课下选做)
    # 2019-2020-4 《Java 程序设计》结对项目总结
    # 2019-2020-3 《Java 程序设计》第五周学习总结
    # 2019-2020-3 《Java 程序设计》实验一:Java开发环境的熟悉
    # 2019-2020-3 《Java 程序设计》第四周总结
    # 2019-2020-3 《Java 程序设计》第三周总结
  • 原文地址:https://www.cnblogs.com/wenbodeboke/p/15215515.html
Copyright © 2011-2022 走看看