微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – Phonegap – 一旦我离开索引范围与window.location.replace处理推送通知

我正在使用 Phonegap 4.2(基于Cordova 5.0)来创建跨平台应用程序.

该应用程序适用于Android和iOS.

用户加载应用程序时,他位于index.html中.从那里我可以访问各种JavaScript方法,原始的,基于Cordova的,而我恰巧使用jQuery v1.11.1.

当应用程序接收到推送通知时,应用程序必须能够访问有效载荷中的位置属性,并且从那里访问特定提到的目的地(例如“https://stackoverflow.com/questions/ask”).我在做这个然后将用户重定向到该特定位置,该位置是网站(不打开浏览器,即离开应用程序),或将网站包含在索引文件中并替换其内容.

使用iFrames似乎不是一个选择,只是简单地将网站包含在索引文件中,因为网站只是显示为空白或其他一些问题 – 尽管我可能是错误的,但这是一个偏离主题(可能会修复我即将出席的整个问题).

阅读了一些文章(antonylees,Stackoverflow等)后,我来到了简单的使用window.location.replace(externalUrl)的解决方案.访问该网站.它工作完美(请注意,构建网站并将其包装到我的应用程序中不是一个选择,因为它太重了).

到现在为止还挺好

我正在使用PushPlugin Cordova插件来处理推送通知.一切都设置和工作;我收到推送通知.

为了能够处理(即处理)我已经在Android和iOS上注册通知事件监听器上的推送通知.

在处理到达的推送通知时,我必须考虑三种情况:

>推送→用户通知→应用程序从冷启动(应用程序未运行)→有效载荷使用索引文件中可用的“onNotification”方法处理,用户重定向到推送中指定的位置通知的有效载荷
>推送→用户通知→应用程序在后台启动(即运行),但用户尚未离开索引文件→有效负载使用索引文件中可用的“onNotification”方法进行处理,用户重定向到推送通知的有效内容中指定的位置

>推送→用户通知→应用程序在后台启动(即运行),但用户已经离开索引文件,通过以前已经重定向到网站,并且不再访问“onNotification”方法,因为它不存在于新的网站→用户保持在他所在的位置,并没有被重定向一个新的位置

我的问题

情景1.和2.工作正常,因为我可以访问附加的通知侦听器,他们可以处理有效负载并实现与发送有效负载的位置属性,以确定用户重定向到哪里.

然而,在情景3中,用户已被重定向到索引文件(和外部网站)以及技术上的索引范围,因此从现在开始,我无法再访问索引文件中可用的方法,包括onNotification方法.

因此,当他收到推送通知时,我无法重定向到新的位置.

所以我的问题是:

离开索引文件后,如何处理新到的推送通知有效载荷?有没有更好的选择,只需将网站包含在索引中,从而使我们以前定义的方法可以随时使用?

谢谢.

编辑

已经向我指出,InAppBrowser插件可能通过在浏览器中提供回调函数代码注入来提供我正在寻找的内容.我会在今晚尝试一下报告,同时我会感谢你的答案,如果你碰巧有一个更好的线索的情况:)

解决方法

使用 InAppBrowser的.open(url,’_blank’,args)方法解决了我的问题.

新加载的页面能够访问以前定义的方法,如果我对此感兴趣,我也可以注入一些代码并将一些基于事件的侦听器添加到新分配的页面,但这并不是必需的.

原文地址:https://www.jb51.cc/js/154470.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐