Phonegap -一旦我离开了window.location.replace的索引范围,处理推送通知

Phonegap - handling push notification once I've left the index scope with window.location.replace

本文关键字:范围 索引 处理 通知 replace 我离开 location window Phonegap      更新时间:2023-09-26

我使用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。

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

  1. Push到达→用户按下通知→应用程序从冷启动(应用程序未运行)→有效负载使用索引文件中可用的' onNotification '方法处理,用户被重定向到推送通知的有效负载
  2. 中指定的位置。
  3. Push到达→用户按下通知→应用程序在后台启动(即运行),但用户尚未离开索引文件→使用索引文件中可用的' onNotification '方法处理有效负载,并将用户重定向到推送通知有效负载中指定的位置
  4. Push到达→用户按下通知→应用程序在后台启动(即运行),但用户已经离开了索引文件,已经被重定向到过去的网站,并不再访问' onNotification '方法,因为它不存在于新的网站→用户保持在他原来的位置,没有重定向到一个新的位置

My issue

场景1。和2。工作得很好,因为我可以访问附加的通知侦听器,它们可以处理有效负载并实现我与有效负载一起发送的位置属性,以确定要将用户重定向到哪里。

然而,在场景3中,用户已经被重定向到索引文件之外(并且到外部网站),并且技术上是索引的范围,所以从现在开始,我不再能够访问索引文件中可用的方法,包括onNotification方法。

因此,当用户收到推送通知时,我无法将用户重定向到新的位置。

所以我的问题是:

离开索引文件后,我如何处理新到达的推送通知有效负载?是否有更好的方法可以简单地将网站包含在索引中,从而使之前定义的方法在我需要时可用?

谢谢。

编辑

有人向我指出,InAppBrowser插件可能通过提供回调函数或代码注入到浏览器中来提供我正在寻找的东西。我今晚会尝试一下,然后带一份报告回来,同时,如果你碰巧对情况有更好的了解,我希望得到SO的回答:)

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

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