Android WebView 防止页面重新加载
Posted
技术标签:
【中文标题】Android WebView 防止页面重新加载【英文标题】:Android WebView prevent page reload 【发布时间】:2014-04-16 14:50:17 【问题描述】:我有一个 Phonegap 打包应用程序,当按下按钮时会打开 PDF 查看器。我是用 FileOpener2 插件做到的。
当我从 PDF 查看器返回应用程序时,结果因 android 版本而异。
在 Android 4.* 中,应用程序在离开应用程序之前会停留在应有的位置。但是,在 Android 2.3.7 中,WebView 会重新加载应用程序,这是我没想到的。
我已经尝试将 android:launchmode 更改为 singleTask 或 singleInstance,但没有成功。
当我回到 Phonegap 应用程序时,如何避免页面重新加载?
提前致谢!
更新 1
我已经修改了 Cordova 或 Phonegap 类 CordovaWebViewClient,它扩展了 WebViewClient:
@Override
public void onLoadResource(WebView view, String url)
if (url.equals("file:///android_asset/www/index.html"))
if (this.firstLoad)
this.firstLoad = false;
else
view.stopLoading();
然而,onLoadResource 仅在应用程序启动时被触发,而不是在从另一个应用程序恢复时被触发。
【问题讨论】:
【参考方案1】:回答我自己的问题,将以下属性设置为 AndroidManifest 中的唯一活动即可解决问题。但是我必须对其进行测试,因为它可能存在我不知道的问题:
android:launchMode="singleInstance"
android:alwaysRetainTaskState="true"
干杯!
更新
在测试出现错误后,使用 Phonegap 相机插件在图库中选择一张照片,显示“已取消选择”。
所以看完https://groups.google.com/forum/#!topic/phonegap/R08vOZNm580我设置:
android:launchMode="singleTask"
android:taskAffinity=""
android:excludeFromRecents="true"
【讨论】:
天哪,你救了我一命。感谢您的解决方案。 那么,如果你设置了LaunchMode,我们是否需要在activity中使用上面的代码'onLoadResource'?【参考方案2】:在android.webkit.WebViewClient onLoadResource回调中调用WebView的stopLoading
MyWebViewClient extend WebViewClient
public void onLoadResource (WebView view, String url)
if(your condition )
view.stopLoading();
【讨论】:
以上是关于Android WebView 防止页面重新加载的主要内容,如果未能解决你的问题,请参考以下文章
在android webview应用程序的页面上单击链接时如何防止显示加载微调器?