アクティビティには、特定のURLを取得してWebViewコントロールで開くためのインテントフィルタがあります。これにより、認証ページ(ユーザー名/パスワード)が表示されます。認証が完了すると、ユーザーはバイナリストリームの応答(ファイル)を取得します。その応答を処理し、ストリームからデータを読み取る方法はありますか?WebViewでバイナリデータ応答を処理する方法
オーバーライドされたshouldOverrideUrlLoadingメソッドを使用してカスタムWebViewClientをセットアップしようとしましたが、アプリケーションがそこに到達しませんでした。
@Override
mMyWebView.setWebViewClient(new CustomWebClient());
mMyWebView.loadUrl("http://xxx.xx.x.xx:xxxx/getCert");
...
private class CustomWebClient extends WebViewClient
{
@Override
public boolean shouldOverrideUrlLoading (WebView view, String urlConection)
{
// break point here doesn't stop debugger
return true;
}
}
どちら
mMyWebView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading (WebView view, String urlConection)
....
});
Serverがマイアプリの両方から同じようにリクエストに反応し、ビルドして、ブラウザで動作します。応答で受け取ったファイルをBuild-inブラウザからダウンロードし始めますが、私のアプリケーションは何もせず、CustomWebClientの中でブレークポイントにヒットしません。 これは、この部分をテストするためだけの別のアプリです。他に干渉するものはありません。インターネット& WRITE_EXTERNAL_STORAGE権限が追加されました。
EDIT:Mar 8 Gave up。 httpClientと一緒に行く予定です。
良い質問ですが、これが可能かどうかを知りたいのですが。残念なことに、WebViewがレンダリングするWebページのコントロールはほとんどありません。私がこれを行う方法を知っている唯一の方法は、PhoneGapを実装してWebコードをアプリケーションと統合することです。 – bbedward
それが本当であれば迷惑です。まだWebViewの実装を書き直す(おそらく簡単ではない)か、WebServicesを使ってHttpClient経由で通信を実装するオプションがあります – Maxim
あなたのコードは大丈夫だと思われ、ブレークポイントはヒットするはずです。 – Caner