1、webView.loadUrl(picTargetUrl); 寫在最前面.
1、在無線城市迷你版的項目,用webview去loadUrl的時候出現加載的現象。
url 地址是 http://go.10086.cn/kuaixun.do
2、因為webview加入的網絡請求的加載框,所以得在加入網絡加載框
//設置webview的客戶端
webView.setWebViewClient(new WebViewClient()
{
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon)
{
// super.onPageStarted(view, url, favicon);
netDialog = DialogUtil.showNetProgressDialog(AdvartWebActivity.this);
super.onPageStarted(view, url, favicon);
}
@Override
public void onPageFinished(WebView view, String url)
{
if (null != netDialog)
{
//加載完成,dialog銷毀
netDialog.dismiss();
}
super.onPageFinished(view, url);
}
});
3、硬件加速
try
{
//禁用硬件加速
Method method = WebView.class.getMethod("setLayerType", int.class, Paint.class);
method.setAccessible(true);
method.invoke(webView, 1, null);
}
catch (Exception e)
{
e.printStackTrace();
}
new Handler().postDelayed(new Runnable()
{
@Override
public void run()
{
webView.getSettings().setBlockNetworkImage(false);
}
}, 1000);
4、在此之前加入了webview加載url的四個屬性
webView.getSettings().setBuiltInZoomControls(false);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setRenderPriority(RenderPriority.HIGH);
webView.getSettings().setBlockNetworkImage(true);
5、死活也加載不出來。后來的網上查找資料,又加入了一堆屬性:
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
webView.getSettings().setAllowFileAccess(true);
webView.getSettings().setAppCacheEnabled(true);
webView.getSettings().setPluginsEnabled(true);
webView.getSettings().setSaveFormData(false);
webView.refreshPlugins(true);
webView.getSettings().setLoadsImagesAutomatically(true);
// http請求的時候,模擬為火狐的UA會造成實時公交那邊的頁面存在問題,所以模擬iPhone的ua來解決這個問題
String user_agent =
"Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/124 (KHTML, like Gecko) Safari/125.1";
webView.getSettings().setUserAgentString(user_agent);
/* Enable zooming */
webView.getSettings().setSupportZoom(false);
6、出現時斷時續的問題,有時候能加載出來,有時候加載不出來.
7、后來將加載 移動到 這些代碼的后面 webView.loadUrl(picTargetUrl)
8、在返回鍵的事件加入 /**
* 方法名稱:onBackEvent
* <p>方法描述:返回鍵事件
* @author wangZhongfu
* @param view
* <p>備注:
*/
public void onBackEvent(View view)
{
webView.destroy();
finish();
}
大功告成,完美。
自己可以參考 無線城市迷你版 項目代碼。
