我在myActivity中创建了带有WebView的Android应用程序 .
public void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState); //在setContentView之前
CookieSyncManager.createInstance(this);
. CookieSyncManager.getInstance()startSync();
. CookieManager.getInstance()removeAllCookie();
CookieManager.getInstance() . setAcceptCookie(true);
setContentView(R.layout.browser);
webviewHTML =(WebView)findViewById(R.id.webviewHTML);
WebSettings webSettings = webviewHTML.getSettings();
webSettings.setSupportZoom(true);
webSettings.setBuiltInZoomControls(true);
webSettings.setJavaScriptEnabled(true);
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
webSettings.setAppCacheEnabled(false);
webSettings.setSaveFormData(false);
webSettings.setSavePassword(false);
webSettings.setDefaultTextEncodingName(“utf-8”);
webSettings.setDomStorageEnabled(true);
webSettings.setUserAgent(0);
webviewHTML.setWebViewClient(new myWebViewClient());
webviewHTML.addJavascriptInterface(new myJavaScriptInterface(),getString(R.string.sAppName));
webviewHTML.setOnLongClickListener(onWebViewLongClickListener);
webviewHTML.loadUrl(“myaddress”);
}
创建WebView时,我打开了我的企业Microsoft Exchange 2010 OWA'https://mail.mydomain.com/owa/'的页面:
然后我手动输入我的域名的用户名和密码 . 但我在WebView中得到错误消息页面(响应代码200):
<head> <head> </ head> <body>错误请求</ body> </ head>
截图:
但是当我在任何浏览器(Chrome)中打开此页面时,我更正输入OWA邮件页面:
为什么Exchange服务器返回html-page在body中有错误?
我需要添加到WebView属性?
Add: 此外,当我在PC窗口的桌面浏览器中打开此页面时,在浏览器(而不是站点)内弹出用户名和密码:
Add solution 我发现了我的错误 . 我在WebView.myWebViewClient.onPageFinish中检查URL,并且URL与我的起始URL不同 . 我更正此网址,我的网页将打开正确 .
1 回答
更改:
对于
说明:您有意将自己(webview)标识为不存在的浏览器,而Exchange可能不喜欢这样 . 通过此更改,您将自己识别为Firefox .
Answer extension
此外,为了摆脱该身份验证请求,您应该使用添加到webview的自己的类来扩展
WebViewClient
并实现onReceivedHttpAuthRequest()
.例如: