zoukankan      html  css  js  c++  java
  • h5与原生app的桥梁搭建与交互使用路程

    附上大佬文章:

    https://blog.csdn.net/zgd826237710/article/details/95518433

    踩坑一:两个h5项目嵌入一个app中,a项目正常与原生交互,b项目就不行,

    解决:

    1.对比b项目代码,一模一样 ,没有任何出入。。。

    2.开始怀疑加载时机不对?于是在main.js中 来回调整js的引入顺序,还是不成功。。。

    那直接在index.html中写与原生交互的js代码。。。。。。还是不行

     3.console.log疯狂输出,发现进不去这里方法的监听回调,导致与原生交互的方法注册失败,所以交互失败

     百度一番,一顿瞎操作后,发现大家都这么写的,好吧 无语了 不知道改什么才对

    看到网上有又说xhr的加载会阻塞这部分代码,为了验证,把本项目的所有created mounted生命钩子的加载事件都去掉 ,结果还是与app交互失败。。。。

    接着又怀疑难道是地图代码影响他?为了验证,新起一个工程,结果还是不行。。。

    4.既然b项目内嵌在app中能行,那就让app把去往b项目的坑位暂借给a项目使用(就是app中加载b项目的地址改成加载a项目)

    题外话:为了调试方便(就是修改本地代码能及时看到app中运行效果),app中内嵌的项目url就是我本地起的开发环境地址,此时a b 项目同时运行在本地环境,为了验证刚刚考虑的坑位问题,改a项目的devserver port端口号,暂停掉b项目的运行(目的是与b项目坑位所需要的url保持一致)

    一顿操作后,验证问题,奇迹出现了,与原生交互失败的a项目在b项目的坑位中竟然能与原生交互。。。。。md  难道是app中内嵌h5的时候,只能写一次注册事件的初始化???按道理应该不会吧,让安卓同事也排查代码 两边有什么不一样,直到这么一段代码

     加载a项目前,加了个进度条的显示。。。。验证一番后,就是这串进度条代码阻塞了h5代码的事件注册,导致交互失败。。看来用这个还是很要考虑其他代码对他存不存在阻塞作用。。。。

    。。真的是一部连续剧的剧情

  • 相关阅读:
    linux shell学习一点点
    【转】gcc中的-w -W和-Wall选项
    gcc 与 g++的区别
    javascript 时间格式(很方便的原生函数)
    js跳出循环的方法区别( break, continue, return ) 及 $.each 的(return true 和 return false)
    weex stream 方法封装
    数组遍历 map()、forEach() 及 字符串切割 split() / 字符串截取 slice()、substring()、substr()
    underscore.js 页面数据渲染
    mysql 安装与启动
    CSS3 animation(动画) 属性
  • 原文地址:https://www.cnblogs.com/chchchc/p/15702864.html
Copyright © 2011-2022 走看看