0

私はhttp://username:[email protected]:port//test/test.mjepd.cgiのようなURLを持っています。 実際には、アプリブラウザでカメラをストリームします。InAppブラウザの基本認証が機能しない

ただし、モバイルウェブビューではなくノートパソコンとコンピュータで動作します。 シンプルロードできません。

いくつかのフォーラムを通って、私は基本的な認証資格情報を渡すことがアプリブラウザのwebviewでモバイルでサポートされていないことに気付きました。

これについての助けをお待ちしております。

答えて

0

オプション1:リクエストにAuthorizationヘッダーを追加します。

HashMap<String, String> headers = new HashMap<String, String>(); 
    String auth = "Basic " + Base64.encodeToString(password.getBytes("UTF-8"), Base64.NO_WRAP); 
    headers.put("Authorization", auth); 
    webview.loadUrl(url, headers); 

はオプション2:また

webview.setWebViewClient(new WebViewClient() { 
     public void onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host, String realm) { 
      if (realm.equals(expectedRealm) && host.equals(ipaddress)) { 
       handler.proceed(username, password); 
      } else { 
       handler.cancel(); 
      } 
     } 
    }); 

:コールバックによる認証を扱いますが、基本的な認証を使用する必要がある場合は、自分で行います好意と使用https:;クリアテキストでパスワードを送信しないでください。

+0

このURLは、ストリーミングを開始するカメラを呼び出します。 OPTIONSが有効になっていないので、これをヘッダーで呼び出すことができません。また、ハイブリッドフレームワークであるionicも使用しています。利用可能なプラグインのどれかでonReceivedHttpAuthRequestをサポートしていません。 – Naju

+0

謝罪、hybrid-mobile-appタグに気付かなかった。私はIonicやCordova、Angular.jsを使って開発したことはありません。私はたくさんのドキュメントを調べましたが、カスタムプラグインまたはカスタムAngularモジュールのどちらかを使ってこれを行う方法があると確信しています。うまくいけば、イオンの経験を持つ誰かが答えることができます。私が持っていた別のアイデアは、URLのクエリパラメータにあなたの証明書を渡し、サーバー/ファイアウォールが正しい場所に資格情報を移動するためにURLを書き直させることでした。 Apache mod_writeは認証前にURLを書き直すので、動作するはずです。 –

関連する問題