6

WebViewを使用してAndroidブラウザアプリケーションを開発しようとしています。これにより、ユーザーはカスタムプロトコルのコンテンツにアクセスできます。カスタムプロトコルはです。foobar://Android WebViewプロトコルハンドラ

このカスタムプロトコルへのすべての要求をインターセプトしたいと思います。これが意味:

  1. GETは
  2. POSTリクエスト

を要求し、私は戻ってのWebViewに、これらの操作の結果を手できるようにする必要があります。

shouldInterceptRequest(APIレベル11から利用可能)を使用してGETリクエストを処理できます。

私の問題は次のとおりです。POSTリクエストを受け取り、処理するにはどうすればいいですか?

ほとんど同じ質問がherehereと尋ねられましたが、問題の解決策は見つかりませんでした。

private class ViewerWebViewClient extends WebViewClient { 

     @Override 
     public void onPageFinished(WebView view, String url) { 

     } 

     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, final String url) { 
      if(!url.contains(MYKEYWORD)) 
       { 
       Toast.makeText(getActivity(),POSTING, Toast.LENGTH_LONG).show(); 
       return true; 
       } 
      return super.shouldOverrideUrlLoading(view, url); 
     } 
    } 

そのわずかなアイデア:

+0

URLの読み込みを上書きしようとしましたか? – Raykud

答えて

0

はあなたのような何かをしてPOSTメソッドのために上書きしようとしています。多分あなたを助けるかもしれない。

+2

これは、ユーザーがあるURLに移動して現在のページを終了する場合に便利です。私はWebView.loadUrl(...)または.post(...)を使用することができます。しかし、ブラウザがバックグラウンドリクエスト(javascriptと思う)を行っている場合は、そのコンテンツを返すことはできません。 shouldInterceptRequestはGETリクエストを処理してコンテンツを返すことができますが、POSTリクエストを傍受してPOSTデータを取得することはできません。残念ながら、あなたの方法は問題を解決しません。しかし、試していただきありがとうございます! – foens