安卓webview,响应式网页在某些设备上显示不正确

问题描述:

我开发了一个带有webview的应用程序,以便在用户请求时显示某些链接,而无需打开外部Web浏览器。安卓webview,响应式网页在某些设备上显示不正确

的问题是,这些链接显示在本地浏览器正确和只有的WebView的一些SDK版本,不是所有的人

例如,它是正确的,但5.1.1错在4.4.4

这是正确的(索尼Z1 5.1.1):

enter image description here

这是错误的(的Nexus 5 4.4.4):

enter image description here

这是我的代码:

@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

爵士同样的问题我有您有任何解决方案.....对于此... –

设置视口MDNGoogle建议

<阶name = “视口” 内容= “宽度=设备宽度,初始规模= 1”>

+0

我无法配置这些网页,因为它们属于第三方网站。我只能配置webview的参数 – jmhostalet

+0

好的。然后你可以检查它是否可以按照你的意愿执行:首先,将webview布局设置为'MATCH_PARENT'或任何静态值。然后'webSettings.setUseWideViewPort(false)'....如果失败。那么你需要拦截请求的页面,并在DOM中写入视口。谷歌代码示例。 – Bonatti

+0

我不工作,如果可能的话,我更喜欢一个解决方案,而不是修改html内容。事实上,它在手机的Chrome浏览器中工作正常。 – jmhostalet