2012-01-20 11 views
4

私は簡単なwebViewのappicationを試してみます。Android - なぜwebviewへのリダイレクト

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    mWebView = (WebView)findViewById(R.id.webview); 
    mWebView.getSettings().setJavaScriptEnabled(true); 
    mWebView.loadUrl("http://eepis-its.edu"); 
} 

public class myWebClient extends WebViewClient{ 
    public void onPageStarted(WebView view, String url, Bitmap favicon){ 
     super.onPageStarted(view, url, favicon); 
    } 

    public boolean shouldOverrideUrlLoading(WebView view, String url){ 
     view.loadUrl(url); 
     return true; 
    } 
} 

public boolean onKeyDown(int keyCode, KeyEvent event){ 
    if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()){ 
     mWebView.goBack(); 
     return true; 
    } 
    return super.onKeyDown(keyCode, event); 
} 

と、私はそのサイト上のハイパーリンクをクリックしようとすると、私は携帯電話のブラウザにリダイレクト:これは私のコードです。なぜ起こるのか? 私が望んでいたのは、ハイパーリンクをクリックすると、webview上でもそのショーです。

私を助けてください。

答えて

12

リンクをクリックしたときにブラウザを起動する標準的な動作を変更する必要があります。 WebViewClientshouldOverrideUrlLoading()を使用してください。 SDKにはexample of thisがあります(便宜上、以下にコピーします)。

private class HelloWebViewClient extends WebViewClient { 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
        view.loadUrl(url); 
        return true; 
    } 
} 

... someWebView.setWebViewClient(new HelloWebViewClient());を呼び出してください。

+0

ありがとうございます。 heheこの愚かな質問を申し訳ありません – DevYudh

関連する問題