美文网首页
APP开发——跨页面通讯

APP开发——跨页面通讯

作者: XFE_Noah | 来源:发表于2016-09-18 00:04 被阅读0次

可选方法

  1. Dcloud在他们的底层封装中提供了webview上面封装了evalJS的方法用来作为跨页通讯的方式,原理就是发送一段javascript代码,到指定的webview中执行;看其方法的名字,可以看出,此方法类似于javascript中的eval方法——将字符串作为参数,传入eval方法中,当做javascript代码执行;
//示例代码
plus.webview.getLaunchWebview().evalJS("alert('弹出内容!')")

在app开发中我们有四个场景需要用到实时通讯,为保证实时通讯能个真正的实时,所以我们需要将websocket连接放在index页面发起(这个是程序的入口页,从程序打开到程序的关闭,是一定会存在的,所以,将websocket连接放在这个页面发起,能个保证用户能个实时的收到服务器的推送信息)。但是,我们并不能保证,服务器传过来的信息,能个实时的通过evalJS的方法,将信息传递到目标页面(用户有可能没有打开那个页面,为保证软件的流程性,程序也是不会自动打开太多页面的)。

综上,Dcloud的evalJS的方法在我1.1版本开始引入websocket之后,我逐步在放弃使用它,不过可喜的是,在去年的时候我老师(@cc老师)有意的引导我们学习跨页通讯,当时学到的html5 storage 很适合用在这样的场景之中。

  1. HTML5 onstorage 事件,当在一个页面中修改Storage的时候,其他页面会触发 onstorage 事件,如果目标页面没打开的时候,也可以吧服务器那边的修改,通过localstorage ,缓存在本地。当目标页面打开的时候能够实时的得到最新的缓存信息。
//监控storage事件代码示例   
window.addEventListener("storage",function(e){
    //e.key  事件对象中,key属性为发生变化的storage对象的key值;
    if(e.key=="userData"){
        indexData.userData = JSON.parse(localStorage.getItem("userData"));
    }
})

后记

相比较而言,对于数据处理方面,html5 storage 结合 onstorage事件 相对evalJS的使用更加方便,并且这个属于W3C规范之中的,这个方法的通用性更强,Dcloud的 evalJS事件,更适合在多页面APP中,进行跨页的UI切换,例如父子窗口的通信,类似于网页中 iframe 与宿主窗口之间的通讯一样。

2016-7-27 更新

app最后还是通过提取公共方法和使用evalJS的方法来实现的跨页面通讯,虽然数据交流还是用的Storage,但是,由于数据量较多是无法触发onStorage事件,所以放弃了前面提到的onStorage事件来触发页面数据的更新,onStorage事件失效的数据量临界值我并没有找到,App开发到现在目前软件初始化之后loaclStorage的使用量应该是在10个左右,只有在remove的时候才会触发onstorage事件,setItem 的时候大几率不触发onStorage事件

相关文章

  • APP开发——跨页面通讯

    可选方法 Dcloud在他们的底层封装中提供了webview上面封装了evalJS的方法用来作为跨页通讯的方式,原...

  • 关于ios跨页面返回

    关于IOS的跨页面返回 对于ios开发小白的我来讲,最初开发APP的时候,面对跨页面返回。只想说一句WTF...

  • 学习笔记-浏览器内多个标签页之间的通讯

    学习笔记-浏览器内多个标签页之间的通讯 Redux vuex 这个是单页面应用里跨页面状态管理 多页应用 跨页面数...

  • 浏览器面试题题库

    跨标签页通讯 通过父页面window.open()和子页面postMessage window.open()和po...

  • 跨平台 App 开发技术方案汇总

    跨平台 App 开发有哪些技术方案,各有哪些优缺点?是否需要从原生 App 开发切换到这些跨平台的方案上来?切换过...

  • 跨平台

    有些公司想要统一开发APP,就有了很多跨平台的想法,python ,js ,c#都可以开发跨平台的APP ,pyt...

  • Vue使用websocket进行心跳连接

    Vue页面template Vue页面js 其他js 部分截图 用途 即使通讯 消息通知 封装当前页面地址到APP...

  • 这是一个尾巴

    “这是一个尾巴” 这是一款即时通讯WP8端的助理软件。此页面记录开发进度,APP发布等情况。-----------...

  • 来自星星的 Iphone_7

    “来自星星的 Iphone_7” 这是一款即时通讯WP8端的助理软件。 此页面记录开发进度,APP发布等情况。 -...

  • 来自 IOS 客户端手机

    “来自 IOS客户端手机” 这是一款即时通讯WP8端的助理软件。 此页面记录开发进度,APP发布等情况。 ----...

网友评论

      本文标题:APP开发——跨页面通讯

      本文链接:https://www.haomeiwen.com/subject/ngpwettx.html