我搜索了很多主题,但仍然找不到我的问题的答案。我正在研究一个Android
应用程序使用WebView
.
I use onSaveInstanceState()
and onRestoreInstanceState()
来保存WebView
像这样声明:
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
webView.saveState(savedInstanceState);
}
and
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
webView.restoreState(savedInstanceState);
}
我的里面也有这个onCreate()
:
public void onCreate(Bundle savedInstanceState) {
... other code ...
if(savedInstanceState != null){
webView.saveState(savedInstanceState);
}else{
webView.loadUrl("http://mypage");
}
}
问题:看来要恢复了WebView
不恢复Javascript
变量/环境/工作空间。当应用程序在后台被杀死然后恢复时,整个 Javascript 以及所有对象/变量都消失了。 javascript 代码是命名空间的,即window.utilitiesPack
, window.eventHandlers
, window.automation
等,它们是未定义的。还JQuery
和其他javascript插件被使用:所有这些插件在恢复状态后似乎都是未定义的。基本上整个Javascript都没有恢复。
有人可以确认或反驳这就是它的真实情况(Javascript 未保存)吗?如果整个 Javascript 工作区没有保存,那么究竟会发生什么WebView.saveState()
节省?有没有一些简单/优雅的方法来使用现有的 API 来保存 Javascript 对象?
//================================================== ======
Update1:所以问题依然存在。最大的困难是:
我正在启动相机Intent
为了一个结果。拍照后,应用程序返回WebView
Activity 并应该使用 Javascript 来更新 HTML5LocalStorage
与一些数据变量。
主要活动与WebView
显示相机活动时被杀死,所以当我们回到 WebView 时,不再有 Javascript,也没有我可以从 Android 代码调用的函数。这种情况每次都会发生Galaxy S3
。在其他手机上仍然会发生这种情况,但并非每次拍照时都会发生。
不知道在这里做什么。不知何故,我必须使用 WebView 来创建主 Activity,以在使用相机意图拍摄照片时保留状态。有谁知道如何实现这一点?