该应用程序适用于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插件可能通过在浏览器中提供回调函数或代码注入来提供我正在寻找的内容.我会在今晚尝试一下报告,同时我会感谢你的答案,如果你碰巧有一个更好的线索的情况:)