javascript与 ios通讯解决办法

简介:   阔别1年半之久,一个JavaScript和ios通讯的想法终于被实现了(我不知道别人有没有早就实现过~)。   记得早期ios内嵌html做通讯时,貌似做好的办法只能是 ios通过url来截取页面发送消息,但是这样一来如果页面框架对url的依赖比较高那么就会出问题,并且频繁改url,ios可能并不能拦截到每次的url。

  阔别1年半之久,一个JavaScript和ios通讯的想法终于被实现了(我不知道别人有没有早就实现过~)。

  记得早期ios内嵌html做通讯时,貌似做好的办法只能是 ios通过url来截取页面发送消息,但是这样一来如果页面框架对url的依赖比较高那么就会出问题,并且频繁改url,ios可能并不能拦截到每次的url。

  一个老外写了一套利用该方法实现的js与ios通讯的库,原理基本还是如此。不过貌似做了优化,url的变换不在webview里,而是再后端跑了一个webview专门处理url的变化,我没有深入研究。这样虽然解决了一部分问题,但是对于我来说听上去就不怎么舒服。

  后来在于ios的合作中听说,javascript发起的alert方法,ios可以重写。当时就一个机灵,那干嘛不把alert重写成能接受消息的入口呢?这样一来只要商定好消息模式(比如alert一个参数代表普通alert,多个代表消息),这样一来,js不就能直接和ios通讯了吗?ios端只要注册多中方法来处理通讯消息就可以了。

  由于我基本没有涉猎ios,所以当时找人印证,不过有的说不能实现,有的说有问题,有的也说可以实现但是最终也没给我实现。。。。 再后来ios7出来后,听说原来的alertview方法变了,当时就觉得快放弃了。

  事情搁置到今天,终于我们ios部门一个经理听了我的想法,非常认同的觉得可以一试。我说了ios7的顾虑,他说只是换了个方法而已。没多久,我前后等了1年半的通讯协议终于实现了!而且验证可以,优缺点我就不说了,大家一想便知!特记录下来纪念!

  无比的后悔当初没研究下ios。

目录
相关文章
|
7月前
|
移动开发 前端开发 数据安全/隐私保护
iOS发布证书.p12文件无密码解决办法及导出带密码的新.p12文件方法
iOS发布证书.p12文件无密码解决办法及导出带密码的新.p12文件方法
209 0
|
JavaScript 前端开发
(javascript)Vue启动时常见错误及其解决办法
(javascript)Vue启动时常见错误及其解决办法
236 0
|
移动开发 前端开发 数据安全/隐私保护
iOS发布证书.p12文件无密码解决办法及导出带密码的新.p12文件方法
本文将以iOS技术博主身份,分享解决使用无密码的.p12文件发布应用时遇到的问题,并介绍如何以带密码的方式重新导出.p12文件的方法。通过本文提供的步骤,开发者可以顺利完成证书的发布流程。
|
7月前
|
存储 移动开发 JavaScript
【原生】sd.js帮助您简化繁重的获取数据、存储数据(CRUD)骚操作(吐槽~在安卓9.0以下或者IOS10.X以下手机端H5页面不支持,在这两种情况下的系统只能使用ajax或者原生js请求后台数据)
【原生】sd.js帮助您简化繁重的获取数据、存储数据(CRUD)骚操作(吐槽~在安卓9.0以下或者IOS10.X以下手机端H5页面不支持,在这两种情况下的系统只能使用ajax或者原生js请求后台数据)
|
JavaScript 前端开发 iOS开发
javascript格式化时间:ios不支持时间戳转换解决方案
javascript格式化时间:ios不支持时间戳转换解决方案
207 0
|
iOS开发
iOS开发 自拍及照片镜面翻转问题解决办法
iOS开发 自拍及照片镜面翻转问题解决办法
290 0
|
jenkins 持续交付 iOS开发
iOS Jenkins打包报错 rm: Permission denied解决办法
iOS Jenkins打包报错 rm: Permission denied解决办法
288 0
|
jenkins 持续交付 Go
iOS Jenkins打包报错401 Authentication credentials are missing or invalid.解决办法
iOS Jenkins打包报错401 Authentication credentials are missing or invalid.解决办法
243 0
|
移动开发 iOS开发
h5的header在iOS app内不显示,在浏览器显示正常解决办法
h5的header在iOS app内不显示,在浏览器显示正常解决办法
125 0
|
传感器 安全 iOS开发
iOS 审核 1.4.1 被拒解决办法
iOS 审核 1.4.1 被拒解决办法
765 0