2011-12-27 11 views
1

私は高さ60dpのwebviewを使用していますが、ローカルのhtmlファイルを渡しています。デフォルトではwebviewのリンクをクリックするとブラウザが開きます。しかし、不思議なことにそのはWebViewの中でリンクを開き、私はまた、URLをwebviewからブラウザに渡そうとしています

私のコードスニペット.. WebViewのクライアントを試してみましたが、目的によってデフォルトのブラウザに応答URLを渡そうとしたが、無駄に:

WebViewClient yourWebClient = new WebViewClient() 
     { 

      @Override 
      public boolean shouldOverrideUrlLoading(WebView view, String url) 
      { 
       System.out.println("Inside WebViewClient the URL is....."+url); 

       Intent i = new Intent(Intent.ACTION_VIEW); 
       i.setData(Uri.parse(url)); 
       startActivity(i); 

      return true; 
      } 
     }; 

    WebView ad = (WebView) findViewById(R.id.webview1); 
    ad.getSettings().setJavaScriptEnabled(true); 
    ad.loadUrl(feed.getItem(position).getLink()); 
    ad.getSettings().setLoadWithOverviewMode(true); 
    ad.getSettings().setUseWideViewPort(true); 
    ad.setInitialScale(100); 
     ad.setWebViewClient(yourWebClient); 
    ad.loadUrl("file:///android_asset/advertisement.htm"); 

答えて

1

現在のWebviewの読み込みを停止します。広告がWebViewの対象であるため、このようにそれをやってみてください。

@Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) 
     { 
      System.out.println("Inside WebViewClient the URL is....."+url); 

      ad.stopLoading(); 
      Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); 
      startActivity(intent); 

     return true; 
     } 

はまた、あなたのWebViewの設定を追加しながらこれを追加します。

ad.getSettings().setSupportMultipleWindows(false); 

は編集:

クロムを関連付ける試してみてくださいクライアントにあなたのウェブビューを確認してください。

ad.setWebChromeClient(new MyWebChromeClient()); 

これはあなたのために動作することを願っています。

+0

ありがとう答えUsama Sarwar、しかし、残念ながらそれは私の問題を解決しません。あなたが広告に対応するリンクを持つ広告を生成するgoogleからJavaスクリプトコードを持っている私が読み込んでいるadvertising.htmlファイルが表示されている場合。 WebViewからハイパーリンクを開こうとすると、コードとコードが機能しますが、「WebViewClient」のsysoutはいずれの場合も印刷されません。 –

+0

私の編集した投稿をチェックしてください。これは役に立ちます。 –

+0

あなたの返信をありがとう、今、別のhtmlファイルを使用して私の問題が解決しました。 –

関連する問題