Jon*_*t92 10 javascript jquery android ios cordova
我正在使用Phonegap 4.2(基于Cordova 5.0)来创建跨平台应用程序.
该应用程序适用于Android和iOS.
当用户加载应用程序时,他位于index.html.从那里我可以访问各种JavaScript方法,raw-,基于Cordova-我碰巧使用jQuery v1.11.1.
当应用程序收到推送通知时,应用程序必须能够访问location有效负载中的属性,并从那里访问特定提及的目标(例如," /sf/ ").我这样做.然后,用户要么被重定向到该特定位置,这是一个网站(不打开浏览器,即离开应用程序),要么将该网站包含在索引文件中并替换它的内容.
使用iFrames似乎不是一个选项,只是简单地将网站包含在索引文件中,因为网站只是显示为空白或其他一些问题 - 虽然我可能错了,但这有点偏离主题(可能会修复整个问题,我即将出席).
在阅读了一些文章(antonylees,Stackoverflow等)之后,我找到了简单地使用window.location.replace(externalUrl);访问该网站的解决方案.它工作得很好.(请注意,构建网站并将其包装到我的应用程序中不是一个选项,因为它太重了).
到现在为止还挺好
我正在使用PushPlugin Cordova插件来处理推送通知.一切都建立起来并且有效; 我收到推送通知.
为了能够处理(即处理)推送通知,我已经onNotification为Android和iOS 注册了事件监听器.
在处理到达的推送通知时,我必须考虑三种情况:
我的问题
场景1.和2.工作正常,因为我可以访问附加的通知侦听器,并且它们可以处理有效负载并实现我随负载一起发送的位置属性,以确定用户被重定向到的位置.
但是,在场景3中,用户已被重定向到索引文件(以及外部网站),从技术上讲是重定向到索引的范围,因此从现在开始,我不再能够访问索引文件中可用的方法,包括onNotification方法.
因此,当他收到推送通知时,我无法将用户重定向到新位置.
所以我的问题是:
离开索引文件后,如何处理新到的推送通知有效负载?是否有更好的替代方案可以简单地将网站包含在索引中,从而使我们在需要时可以使用以前定义的方法?
谢谢.
编辑
我已经向我指出,InAppBrowser插件可能通过向浏览器提供回调函数或代码注入来提供我正在寻找的东西.今晚我会尝试并带回报告,与此同时,如果你碰巧对这种情况有更好的线索,我会很感激你的答案:)
使用InAppBrowser的.open(url, '_blank', args)方法解决了我的问题。
新加载的页面能够访问之前定义的方法,如果我对此感兴趣,我还可以注入一些代码并向新分配的页面添加一些基于事件的侦听器,但这根本不是必需的。
| 归档时间: |
|
| 查看次数: |
523 次 |
| 最近记录: |