2017-08-28 5 views
0

私のアプリケーションでは、4つのタブがあり、2番目のタブには、Webview ... をロードしようとしていますshouldOverrideUrlLoading ... しかしshouldOverrideUrlLoading方法と、それは新しい活動にリダイレクト... は、しかし、私が欲しいのは最初のフラグメントに、それは新しい活動にリダイレクトされるべき任意のコンテンツリンクをクリックした後のWebViewをロードすることですフラグメントの最初のWebview読み込み時にshouldOverrideUrlLoadingを呼び出す方法を制限する方法

private void setUpWebView() { 

    WebSettings ws = webView.getSettings(); 
    ws.setJavaScriptEnabled(true); 
    ws.setAllowFileAccess(true); 
    webView.setScrollContainer(false); 
    webView.setWebViewClient(new WebViewClient()); 
} 

@Override 
public void onAttach(Context context) { 
    super.onAttach(context); 
    mContext = context; 
} 

private class WebViewClient extends android.webkit.WebViewClient{ 

    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) 
    { 
     Intent intent = new Intent(getContext(),WebViewShowActivity.class); 
     startActivity(intent); 
     return true; 
    } 

} 
+0

どういう意味ですか? 'shouldOverrideUrlLoading'メソッドを持つと' webview'がうまく読み込まれません。 – Wizard

+0

はいこれはありません。このメソッドを無効にすると、このメソッドをフラグメントに書き込んだ後、別のactivity.Butでリダイレクトされますが、フラグメント内にwebviewをロードしますが、このメソッドは別のアクティビティでリダイレクトします...しかし、断片化してリンクをクリックするよりも他の活動にリダイレクトする必要があります – Nimesh

答えて

0
public class WebViewJavaScriptInterface { 
     public Context context; 

     public WebViewJavaScriptInterface(Context context) { 
      this.context = context; 
     } 

     @JavascriptInterface 
     public void openPost(String url,String posttitle) { 
      String postUrl = "https://google.in"+url; 
      String postTitle = posttitle; 
      Log.d("POSTURL",postUrl); 
      Intent intent = new Intent(getContext(), WebViewShowActivity.class); 
      intent.putExtra("linkUrl",postUrl); 
      intent.putExtra("postTitle",postTitle); 
      startActivity(intent); 
     } 

     @JavascriptInterface 
     public void openVideo(String url) { 
      String youtubeUrl = url; 
      Log.d("YoutubeURL",youtubeUrl); 
      ForTrainertUtil.playPostVideoForYoutubeID(context,youtubeUrl); 
     } 


    } 

これは、我々は、WebページからのJavaScriptを通じてイベントをクリックして処理する方法..です 私はそれがアンドロイドで関連付ける方法を扱うWebページの特定のコンテンツをクリックしてください。

0

ます状態を確認できます

public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) 
{ 
    if (view.getUrl()!=baseUrl) { 
     Intent intent = new Intent(getContext(), WebViewShowActivity.class); 
     startActivity(intent); 
     return true; 
    }else { 
     return false; 
    } 
} 
+0

はい、あなたは正しいですが、私はこれを異なってやりました。私は自分の答えを投稿しました。 – Nimesh

0

urlをwebviewに読み込むには、コールバックで返されたwebviewオブジェクトにURLをロードし、webviewコンテンツからクリックされたリンクを開くには、リクエストを確認して新しいアクティビティでロードする必要があります。

webview.setWebViewClient(new WebViewClient() { 
      public boolean shouldOverrideUrlLoading(WebView view, String request) { 
       if (request != null && request.toString().startsWith("http://")) { //comparison params is upto your requirements 
        Intent intent = new Intent(MainActivity.this, secondactivity.class); 
        startActivity(intent); 
        return true; 
       } 
       return super.shouldOverrideUrlLoading(view, request); 
      } 
     }); 
+0

はい、あなたは正しいですが、私はこの違いをしました。私は私の答えを投稿しました。 – Nimesh

関連する問題