选项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:
;不要以明文形式发送密码。
这个URL调用一个摄像头,然后开始流式传输。它没有启用选项,所以我无法用头来调用它。此外,我正在使用离子,混合框架。它不支持带有任何可用插件的onReceivedHttpAuthRequest。 – Naju
道歉,没有注意到混合移动应用程序标签。我从来没有用Ionic,Cordova或Angular.js开发过。我浏览了一大堆文档,我确信有办法通过自定义插件或自定义Angular模块来完成此操作。希望有离子体验的人可以回答。我的另一个想法是将您的凭证传递给URL中的查询参数,并让服务器/防火墙重写URL以将证书移至正确的位置。 Apache mod_write在认证之前重写了URL,所以这看起来应该可以工作。 –