2013-10-30 53 views
4

我正在將一個URL加載到webview中以將其顯示到我的應用中。我遇到的問題是,並不總是該網站認識到我是一個電話(爲什麼這麼做?)。我究竟如何強制webview發送到網站,我是手機?目前我正在做這樣的爲WebView強制移動版本的網站

webview.getSettings().setUserAgentString("Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3");

但是,這並不工作?它不會工作,因爲我沒有使用iPhone?我不認爲這是原因,因爲它只是設置用戶代理...

這是相關的代碼(irelevant代碼只包含數據,如從意圖獲取URL和格式化字符串)

//package 

//imports 

public class WebViewing extends Activity { 

    private WebView webview; 
    private ProgressDialog dialog; 

    //init strings 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.webviewer); 

     ActionBar actionBar = getActionBar(); 
     actionBar.setDisplayHomeAsUpEnabled(true); 

     //init variables 

     //get intent data and format string 


     this.webview = (WebView) findViewById(R.id.webView1); 
     webview.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); 
     webview.getSettings().setUserAgentString("Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3"); 
     webview.setWebViewClient(new WebViewClient() { 
      @Override 
      public void onPageFinished(WebView view, String url) { 
       if (dialog.isShowing()) { 
        dialog.dismiss(); 
       } 
      } 

      public boolean shouldOverrideUrlLoading(WebView view, String url) { 
       view.loadUrl(url); 
       return true; 
      } 
     }); 
     dialog.setMessage("Website wird geladen...\nDies ist abh\u00E4ngig von deiner Internet-Verbindung."); 
     dialog.setCanceledOnTouchOutside(false); 
     dialog.show(); 
     webview.loadUrl(sourceURL); 
     setTitle("Platz: " + plusRank + " - " + realDate); 

    } 

    //onCreateOptionsMenu method 

    //onOptionsItemSelected method 
} 

我也嘗試了這個字符串爲用戶代辦

Mozilla/5.0 (Linux; U; Android 2.2; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1

回答

9

嘗試把以下這些行: -

webview.getSettings().setJavaScriptEnabled(true); 
webview.getSettings().setUserAgentString("Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3"); 
+0

似乎啓用JavaScript解決了這個問題。 :)謝謝 – Musterknabe

+1

設置用戶代理字符串可能會也可能不會解決問題,這一切都取決於網站所尋找的用戶代理字符串。它可能使用JavaScript來做到這一點,這就是爲什麼啓用JavaScript更可能可靠地解決問題的原因 –