Android WebView可以';不要总是加载url
我试图使用WebView加载URL,但web视图似乎不稳定-有时页面加载100%,有时页面停止加载30%/50%/75%(随机)。 我在Android Bolts任务中创建了WebView,并且没有向用户显示WebView,它只为将来的请求加载一些javascript 代码:Android WebView可以';不要总是加载url,android,android-webview,bolts-framework,Android,Android Webview,Bolts Framework,我试图使用WebView加载URL,但web视图似乎不稳定-有时页面加载100%,有时页面停止加载30%/50%/75%(随机)。 我在Android Bolts任务中创建了WebView,并且没有向用户显示WebView,它只为将来的请求加载一些javascript 代码: private Task\u SetupJavascript(){ final Task.TaskCompletionSource myTask=Task.create(); WebView WebView=新的WebVi
private Task\u SetupJavascript(){
final Task.TaskCompletionSource myTask=Task.create();
WebView WebView=新的WebView(getActivity());
最终WebSettings=webview.getSettings();
settings.setJavaScriptEnabled(true);
settings.setDomStorageEnabled(true);
setWebViewClient(新的WebViewClient(){
@凌驾
公共void onPageFinished(WebView视图,字符串url){
loadUrl(“javascript:LocalStorage.set('valueA','valueB','valueC');”;
myTask.setResult(Boolean.TRUE);
}
@凌驾
公共布尔值shouldOverrideUrlLoading(WebView视图,字符串url){
view.loadUrl(url);
返回true;
}
@凌驾
接收错误时公共无效(WebView视图、WebResourceRequest请求、WebResourceError错误){
//在测试期间从不开火
Log.e(标记“onReceivedError--->出了问题…”);
myTask.setCancelled();
}
});
setWebView.WebChromeClient(新WebChromeClient(){
@凌驾
public void onProgressChanged(WebView视图,int newProgress){
super.onProgressChanged(视图,newProgress);
Log.e(标记“”+newProgress);
}
});
loadUrl(URL);
onResume();
返回myTask.getTask();
}
<>我不知道什么会导致WebVIEW在进程中间停止随机加载。
有时在第一次运行此任务时失败,有时在3/4/5次之后失败
private Task<Boolean> task_SetupJavascript(){
final Task<Boolean>.TaskCompletionSource myTask = Task.create();
WebView webview = new WebView(getActivity());
final WebSettings settings = webview.getSettings();
settings.setJavaScriptEnabled(true);
settings.setDomStorageEnabled(true);
webview.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
view.loadUrl("javascript: LocalStorage.set('valueA', 'valueB', 'valueC');");
myTask.setResult(Boolean.TRUE);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
// never fired during tests
Log.e(TAG,"onReceivedError ---> Something went wrong... ");
myTask.setCancelled();
}
});
webview.setWebChromeClient(new WebChromeClient() {
@Override
public void onProgressChanged(WebView view, int newProgress) {
super.onProgressChanged(view, newProgress);
Log.e(TAG, ""+newProgress);
}
});
webview.loadUrl(URL);
webview.onResume();
return myTask.getTask();
}