安卓webview,响应式网页在某些设备上显示不正确
我开发了一个带有webview的应用程序,以便在用户请求时显示某些链接,而无需打开外部Web浏览器。安卓webview,响应式网页在某些设备上显示不正确
的问题是,这些链接显示在本地浏览器正确和只有的WebView的一些SDK版本,不是所有的人
例如,它是正确的,但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);
}
}
}
我能做些什么?
我无法配置这些网页,因为它们属于第三方网站。我只能配置webview的参数 – jmhostalet
好的。然后你可以检查它是否可以按照你的意愿执行:首先,将webview布局设置为'MATCH_PARENT'或任何静态值。然后'webSettings.setUseWideViewPort(false)'....如果失败。那么你需要拦截请求的页面,并在DOM中写入视口。谷歌代码示例。 – Bonatti
我不工作,如果可能的话,我更喜欢一个解决方案,而不是修改html内容。事实上,它在手机的Chrome浏览器中工作正常。 – jmhostalet
爵士同样的问题我有您有任何解决方案.....对于此... –