Phonegap -一旦我离开了window.location.replace的索引范围,处理推送通知
Phonegap - handling push notification once I've left the index scope with window.location.replace
我使用Phonegap 4.2(基于Cordova 5.0)来创建一个跨平台的应用程序。
该应用程序适用于Android和iOS。
当用户加载应用程序时,他位于index.html
。从那里我可以访问各种JavaScript方法,原始的,基于cordova的-我碰巧使用jQuery v1.11.1。
当应用程序收到推送通知时,应用程序必须能够访问有效负载中的location
属性,并从那里访问特定提到的目的地(例如:"https://stackoverflow.com/questions/ask")。我正在这么做。然后用户要么被重定向到特定的位置,这是一个网站(不打开浏览器,即)。离开应用程序),或将网站包含在索引文件中并替换其内容。
使用iFrames
似乎不是一个选项,只是将网站包括在索引文件中,由于网站只是出现为空白或其他一些问题-虽然我可能是错的,但那是那种偏离主题(可能会解决整个问题,我即将呈现)。
在阅读了一些文章(antonylees, Stackoverflow等)之后,我得出了简单地使用window.location.replace(externalUrl);
访问网站的解决方案。它工作得很完美。(请注意,构建网站并将其包装到我的应用程序中不是一个选项,因为它太重了)。
一切顺利
我使用的是PushPlugin Cordova插件来处理推送通知。一切都准备好了,运转正常;我确实会收到推送通知。
能够处理()处理)推送通知,我已经注册了onNotification
事件监听器,用于Android和iOS。
在处理到达的推送通知时,我必须考虑三种情况:
- Push到达→用户按下通知→应用程序从冷启动(应用程序未运行)→有效负载使用索引文件中可用的' onNotification '方法处理,用户被重定向到推送通知的有效负载 中指定的位置。
- Push到达→用户按下通知→应用程序在后台启动(即运行),但用户尚未离开索引文件→使用索引文件中可用的' onNotification '方法处理有效负载,并将用户重定向到推送通知有效负载中指定的位置
- Push到达→用户按下通知→应用程序在后台启动(即运行),但用户已经离开了索引文件,已经被重定向到过去的网站,并不再访问' onNotification '方法,因为它不存在于新的网站→用户保持在他原来的位置,没有重定向到一个新的位置
My issue
场景1。和2。工作得很好,因为我可以访问附加的通知侦听器,它们可以处理有效负载并实现我与有效负载一起发送的位置属性,以确定要将用户重定向到哪里。
然而,在场景3中,用户已经被重定向到索引文件之外(并且到外部网站),并且技术上是索引的范围,所以从现在开始,我不再能够访问索引文件中可用的方法,包括onNotification
方法。
因此,当用户收到推送通知时,我无法将用户重定向到新的位置。
所以我的问题是:
离开索引文件后,我如何处理新到达的推送通知有效负载?是否有更好的方法可以简单地将网站包含在索引中,从而使之前定义的方法在我需要时可用?
谢谢。
编辑
有人向我指出,InAppBrowser插件可能通过提供回调函数或代码注入到浏览器中来提供我正在寻找的东西。我今晚会尝试一下,然后带一份报告回来,同时,如果你碰巧对情况有更好的了解,我希望得到SO的回答:)
使用InAppBrowser的.open(url, '_blank', args)
方法解决了我的问题。
新加载的页面能够访问先前定义的方法,如果我对此感兴趣,我还可以向新分配的页面注入一些代码并添加一些基于事件的侦听器,但这根本不是必需的。
- 名称输入的索引
- 正在全局范围中查找JavaScript函数
- 索引数据库保存范围为
- 未捕获的范围错误:WebSQL查询结果中的项索引超出范围错误
- jVectormap:试图转换映射时元组索引超出范围
- Javascript - 数组中索引周围的范围为 5
- 如何删除字符串中的索引位置范围
- 如何在特定的索引范围内替换
- jQuery可排序的自定义索引范围序列化
- 未能执行'postMessage'在'敬业员工全球范围':索引0处的值没有可转移类型
- 多个属性上的索引DB游标范围
- Python Index Error索引超出范围的列表
- Phonegap -一旦我离开了window.location.replace的索引范围,处理推送通知
- 返回一个HTML字符串,但是用HTML标记包装一定的索引范围
- 无效的列索引未定义.取值范围为[0-8]之间的整数
- OfficeJs/WordJs通过索引和绑定单击事件选择文本范围
- 在数组范围中查找索引
- 使用Javascript查找范围值的索引
- 如果出现错误“索引错误:列出索引超出范围”,请重新加载页面
- 我一直得到indexerror:索引列表超出python的范围