myActivity 内に WebView を使用して Android アプリを作成します。
public void onCreate( Bundle savedInstanceState) { super.onCreate( savedInstanceState);
// before 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>Bad Request</body></head>
スクリーンショット:
しかし、任意のブラウザー (Chrome) 内でこのページを開くと、OWA メール ページに正しく入力します。
Exchange サーバーが本文内にエラーのある HTML ページを返すのはなぜですか?
WebView プロパティに何を追加する必要がありますか?
追加: また、PC ウィンドウのデスクトップ ブラウザーでこのページを開いて、ブラウザー内でユーザー名とパスワードのポップアップを表示すると (サイトではありません):
解決策を追加するエラーが見つかりました。WebView.myWebViewClient.onPageFinish で URL を確認しましたが、URL が開始 URL と異なっていました。この URL を修正すると、ページが正しく開きます。