未加载Android Webview图像 [英] Android Webview Image not loaded
问题描述
我用WebView
制作了一个简单的应用程序.但是有些图片没有加载.
I making a simple app with WebView
. But some images didn't load.
正确(在我的电脑中):
Correct (in my pc):
错误(在模拟器中):
正确:
错误:没有横幅
所以我用Chrome调试进行了调试,发现我的代码已更改.
So I debugged with Chrome debug and found out my code was changed.
我不添加noscript
或style="display:none;visibility:hidden;"
.
谁知道该如何解决?
代码在这里
public class MainActivity extends Activity {
private WebView webView;
private ProgressBar mPBar;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = (WebView) findViewById(R.id.webView1);
mPBar = (ProgressBar) findViewById(R.id.progress01);
WebSettings set = webView.getSettings();
set.setJavaScriptEnabled(true);
set.setCacheMode(WebSettings.LOAD_DEFAULT);
webView.loadUrl("http://something.kr"); // 보여주고자 하는 주소
//set.setCacheMode(WebSettings.LOAD_NO_CACHE);
set.setSupportZoom(false);
Log.i("DEBUG", set.getUserAgentString());
webView.setWebViewClient(new WebClient());
webView.setWebChromeClient(new WebChromeClient()
{
public void onProgressChanged(WebView view, int progress) {
if (progress<100)
{
mPBar.setVisibility(ProgressBar.VISIBLE);
}
else if (progress==100)
{
mPBar.setVisibility(ProgressBar.GONE);
}
mPBar.setProgress(progress);
}
});}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event){
if(keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0){
if(webView.canGoBack()){
webView.goBack();
}else{
webView.clearCache(false);
finish();
}
return true;
}
return super.onKeyDown(keyCode, event);
}
private class WebClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.startsWith("sms:")) {
Intent i = new Intent(Intent.ACTION_SENDTO, Uri.parse(url));
startActivity(i);
return true;
}
if (url.startsWith("kakaolink:")) {
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(i);
return true;
}
if(url.startsWith("tel")){
Intent i = new Intent(Intent.ACTION_DIAL);
i.setData(android.net.Uri.parse(url));
startActivity(i);
} else {
view.loadUrl(url);
}
return true;
}}
}
推荐答案
来自Android文档:
From Android docs:
Android 5.0更改了应用程序的默认行为.如果您的应用 定位到21级或更高级别的API:系统会阻止混合内容和 默认情况下,第三方Cookie ... - https://developer.android.com/about/versions/android -5.0-changes.html
Android 5.0 changes the default behavior for your app. If your app targets API level 21 or higher: The system blocks mixed content and third party cookies by default... - https://developer.android.com/about/versions/android-5.0-changes.html
所以尝试一下:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
这篇关于未加载Android Webview图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!