2013-10-30 46 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更可能可靠地解决问题的原因 –