2014-02-28 3 views
0

모바일 버전 용 작은 webview 코드를 작성하고 싶습니다. 모든 것이 작동하지만 때로는 링크를 열 수 없습니다. shouldOverrideUrlLoading에 실수가있는 것으로 생각됩니다.shouldOverrideUrlLoading (WebView view, String url) 틀린가요?

모바일 버전의 웹 사이트를 강제로 사용하기 위해이 "? mt = 1"을 수행합니다.

도움 주셔서 감사합니다.

베스트는 도미니크

package com.webview.atmclassicparts; 

import android.os.Bundle; 
import android.app.Activity; 
import android.view.KeyEvent; 
import android.view.Menu; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 

public class MainActivity extends Activity { 

    private WebView webView; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     webView = new WebView(MainActivity.this); 
     setContentView(webView); 
     webView.getSettings().setJavaScriptEnabled(true); 
     webView.getSettings().setUserAgentString("Android 4.2.2"); 
     webView.loadUrl("http://www.***.de/index.php?mt=1"); 
     webView.setWebViewClient(new WebViewClient(){ 
      public boolean shouldOverrideUrlLoading(WebView view, String url) 
      { 
       if(!url.toLowerCase().contains("http://www.***.de")) 
       { 
        String url2 = url + "?mt=1"; 
        return true; 
       } 
      return false; 
       } 
      }); 

    } 


    @Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
     // Prüfen, ob wirklich Zurück gedrückt wurde und ob vorher Seiten besucht wurden 
     if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) { 
      webView.goBack(); 
      return true; 
     } 
     // Wenn es nicht die Zurück-Taste war oder keine Seitenhistory verfügbar ist, wird die Default- Methode ausgeführt. Meist ist dass das Beenden der Aktivität 
     return super.onKeyDown(keyCode, event); 
    } 
} 
+0

if 문을 로그하여 기록했는지 확인 했습니까? (확실하게 : http : //www.***.de가 없으면 페이지에? mt = 1을 붙이고 싶습니다.) – Ahmad

+0

모두 포함해야합니다. www. ***. de/123? mt = 1은 올바른 링크 일 것입니다. – user3365415

답변

1

당신은 당신의 사이트의 모바일 버전을 강요하지 않는, 당신은 그 전화를 무시하고 기원합니다.

webView.setWebViewClient(new WebViewClient(){ 
     public boolean shouldOverrideUrlLoading(WebView view, String url) 
     { 
      if(!url.toLowerCase().contains("http://www.***.de")) 
      { 
       String url2 = url + "?mt=1"; 
       view.loadUrl(url2); // <<--- you were missing this 
       return true; 
      } 
      return false; 
     } 
    }); 
관련 문제