2015-10-15 79 views
0

我開發了一個帶有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

爵士同樣的問題我有您有任何解決方案.....對於此... –

回答

0

設置視口MDNGoogle建議

<階name = 「視口」 內容= 「寬度=設備寬度,初始規模= 1」>

+0

我無法配置這些網頁,因爲它們屬於第三方網站。我只能配置webview的參數 – jmhostalet

+0

好的。然後你可以檢查它是否可以按照你的意願執行:首先,將webview佈局設置爲'MATCH_PARENT'或任何靜態值。然後'webSettings.setUseWideViewPort(false)'....如果失敗。那麼你需要攔截請求的頁面,並在DOM中寫入視口。谷歌代碼示例。 – Bonatti

+0

我不工作,如果可能的話,我更喜歡一個解決方案,而不是修改html內容。事實上,它在手機的Chrome瀏覽器中工作正常。 – jmhostalet

相關問題