【发布时间】:2015-11-09 12:57:28
【问题描述】:
当从 Cordova 应用程序访问外部页面,然后使用返回按钮返回应用程序时,应用程序页面是空的,或者更准确地说,动态添加到页面的所有内容都消失了。
无论链接是本机<a href="..."> 还是通过window.open() 或cordova.InAppBrowser.open() 访问,似乎都是这种情况。唯一不会发生这种情况的方法是通过“_system”参数指定实际浏览器。
有没有办法防止这种情况,或者这是正常行为?我应该在返回时简单地重建动态页面吗?我可以这样做,但似乎没有任何事件在返回时被触发,甚至没有pageshow。
【问题讨论】:
-
确实,正如@Jeff 所说,应用程序完全重新启动,与初始启动相同,因此所有动态内容都丢失了(javascript 变量也是如此)并且必须重新构建页面,可能在重新加载之后来自
LocalStorage的数据。根据初始应用启动,有一个区别:活动页面是我们离开的页面,尽管它的pagebeforecreate或pagebeforeshow未被调用。因此,如果您的应用程序在这些事件上设置页面,则不会调用您的设置。所以在deviceready,你应该调用所有页面的设置代码,所以它们在从浏览器返回时被重建。
标签: javascript cordova browser inappbrowser