现在我正在开发各种WebView应用程序。 在某些情况下,我不需要在WebView上加载图像,然后动态调用WebView.setBlockNetworkImage(true)。
API可以正常工作,但在某些情况下,当我点击链接标记时,在开始加载到下一页之前会有很长的延迟。
让我告诉你如下的最低代码:
public class MainActivity extends AppCompatActivity {
private static final String TAG="MainActivity";
private WebView mWebView;
private WebSettings mWebSettings;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mWebView = (WebView)findViewById(R.id.webView);
mWebSettings = mWebView.getSettings();
mWebSettings.setJavaScriptEnabled(true);
mWebSettings.setBlockNetworkImage(true);
mWebView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return false;
}
});
mWebView.loadUrl( "http://www.yahoo.co.jp");
}
当我运行上面的代码时,应用程序将加载Yahoo!日本页面。接下来,您单击拍卖页面链接(您将看到锤子图标),WebView将在开始加载前等待几秒钟。延迟是5秒左右。 如果我们为setBlockNetworkImage()提供false,则会立即开始加载。
Link button on Yahoo! Japan page.
我在API22上使用模拟器和API23确认了与真实设备相同的行为。 内容中的链接按钮只是一个标签'。但是现在我在其他任何网站上都没有看到相同的行为。
我不了解阻止图片资源是否与点击代码的延迟有关。 如果您有线索或解决方案,请告诉我。