我开发了一个带有webview的应用程序,可在用户请求时显示一些链接,而无需打开外部Web浏览器。
问题是这些链接在本机浏览器中正确显示,仅某些SDK版本的webview,而不是所有这些链接
例如,它在5.1.1中是正确的,但在4.4.4中是错误的
这是对的(索尼Z1和5.1.1):
这是错误的(Nexus 5和4.4.4):
这是我的代码:
@SuppressLint("SetJavaScriptEnabled")
public class InAppBrowserActivity extends Activity {
public static final String EXTRA_URL = "URL";
public static final int RESULT_FAILURE = 101;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
WebView webview = new WebView(this);
webview.setWebViewClient(new MyViewClient());
webview.getSettings().setJavaScriptEnabled(true);
setContentView(webview);
final String url = getIntent().getStringExtra(EXTRA_URL);
Log.d(getClass().getName(), "Trying to load url " + url);
webview.loadUrl(url);
}
public void closeActivity(int result){
setResult(result);
finish();
}
public class MyViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
InAppBrowserActivity.this.closeActivity(RESULT_FAILURE);
}
}
}
我该怎么办?
答案 0 :(得分:0)
您可以尝试以下方法:
WebView webView = (WebView) findViewById(R.id.webview);
webView .getSettings().setLoadWithOverviewMode(true);
webView .getSettings().setUseWideViewPort(true);