2011-09-05 11 views
38

で同じWebビューで開いているはずリンクは私がアンドロイドで新しいですし、私はこのコードを使用してのWebViewでリンクを開くしようとしていますAndroidの

WebView myWebView = (WebView) findViewById(R.id.webinfo); 
    myWebView.loadUrl("http://oslobokfestival.netteam.no/artical.php?articalid=93"); 
    myWebView.setBackgroundResource(R.drawable.lbg); 
    myWebView.setBackgroundColor(Color.TRANSPARENT); 
    myWebView.getSettings().setJavaScriptEnabled(true); 

と、このHTMLページ内 にはいくつかのリンクが含まれていると私はそれをしたいですユーザーがこのリンクをクリックすると同じウェブビューで開く必要があります。 この時点では、モバイルブラウザで開かれていますので、適切な解決策を教えてください。 ありがとうございます。

+0

あなたがやりたいことと同じである[このスレッド](http://stackoverflow.com/questions/6843029/android-webview-new-window-url)を確認することができます。 – Whiler

+0

URLをクリックするとURLを得ることができます。>>>> –

答えて

105

WebViewで開くには、WebViewClientをWebViewに追加する必要があります。

myWebView.setWebViewClient(new WebViewClient() { 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) { 
     view.loadUrl(request.getUrl().toString()); 
     return false; 
    } 
}); 

+0

ありがとうございました。 – Mahek

+5

これは動作しません。 –

+0

が動作しますが、新しいウィンドウで開くためにtarget = _blankが適用されているリンクを許可する方法はありますか? – mim

4

のようなものは削除してみてください@Overrideand loadurl 私のためにこの仕事の後に置くこと...

myWebView.loadUrl("http://someurl.com"); 
myWebView.setWebViewClient(new WebViewClient() { 
    public boolean shouldOverrideUrlLoading(WebView viewx, String urlx) { 
     viewx.loadUrl(urlx); 
     return false; 
    } 
}); 
+0

@Overrideandは、オーバーライドする方法を伝える単なる注釈です。あなたはそれをそこに保持することができます(そして、そうするべきです)。 – Srneczek

+0

それは私のために働きます。 – Markonionini

1

オーバーライドメソッドshouldOverrideUrlLoadingこのようなWebViewClient

myWebView.setWebViewClient(new WebViewClient(){ 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) { 
      view.loadUrl(request.toString()); 
      return true; 
     } 
    }); 

単に

shouldOverrideUrlLoading方法および処理する

リターンsuper.shouldOverrideUrlLoading(view, request)

をオーバーライドすることによって、私にとってはその作品をインターネット

2

へのアクセスを得るためにあなたのマニフェストファイルこのタグ<uses-permission android:name="android.permission.INTERNET" />を追加すべてのリンクは同じWebViewです。

webview.setWebViewClient(new WebViewClient(){ 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) { 
     return super.shouldOverrideUrlLoading(view, request); 
     } 
}); 
関連する問題