欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

IOS与h5交互记录

程序员文章站 2023-10-15 18:22:00
博主之前做过移动端app嵌入网页,与Android和IOS有交互,一直没有时间分享过程。这里不多说Android交互啦~很简单,详细了解IOS与h5的交互吧。 IOS不同语法和h5的交互所建立的JSBrige是不一样的,但是大致思想是一样。这里粘出swift与h5交互创建JSBrige。 这是js部 ......

博主之前做过移动端app嵌入网页,与android和ios有交互,一直没有时间分享过程。这里不多说android交互啦~很简单,详细了解ios与h5的交互吧。

ios不同语法和h5的交互所建立的jsbrige是不一样的,但是大致思想是一样。这里粘出swift与h5交互创建jsbrige。

 

 IOS与h5交互记录

这是js部分基础搭建桥,可以将其固定封装成单独的js文件,然后在main.js中引入,我们可以通过swiftjsbridge.callnativebridge传输数据。

假设网页端需要从ios端拿到token,便可以约定一个名为gettoken的方法,{}里写着与ios约定好的json对象

window['first']=function() {
if(window.swiftjsbridge){
swiftjsbridge.callnativebridge("gettoken",{"data":"give me token"},function(data){
if(data.token){
//操作token
axios.defaults.headers.common['psstoken'] = data.token;
localstorage.setitem('token',data.token);
}
 
return;
})
}
}

交互方面其实是简单的。但是关于ios版本不兼容插件问题会有很多麻烦之处。

ios9不兼容jquery.mobile 1.4.5以下,并且不兼容es6语法糖,所以会导致如果使用原生js写项目,在ios9版本的手机,会没有任何js的交互功能出现。改用jquery.mobile 1.4.5之后,的确可以兼容了,但是却出现了ios其他版本请求后台没有反应的情况,经过一系列排查发现jquery.mobile 1.4.5是不被ios其他版本兼容的,因此当这种兼容问题出现时,可以考虑从客户端拿版本进行判断,也可以无脑式将两种插件载入。。没想到这招可以。。爬坑艰难

---zyy小媛酱---