[解決済み] AndroidにおけるWebViewとCookie
2022-02-14 06:22:07
質問
appspotにあるアプリケーションは、通常のブラウザでは問題なく動作しますが、AndroidのWebViewで使用すると、Cookieを設定したり、読み込んだりすることができません。ちなみに、私はこのWebアプリケーションの外からクッキーを取得しようとしているわけではなく、一度WebViewによってURLが訪問されれば、すべての処理、IDなどはそこにとどまり、私が必要とするのはそのアプリケーション内のセッション管理だけです。最初の画面も問題なくロードされるので、WebView + サーバーのインタラクティブ性は壊れていないことがわかります。
WebSettingsクラスを見てみましたが、setEnableCookiesのような呼び出しはありませんでした。
このようにURLを読み込みます。
public class MyActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
WebView webview = new WebView(this);
setContentView(webview);
webview.loadUrl([MY URL]);
}
..
}
何かアイデアはありますか?
解決方法は?
何が起こっているのかがわかった
サーバーサイドのアクション(URLの訪問)を通じてページをロードし、そのアクションから返されたhtmlをWebviewの中で見ると、その最初のアクション/ページはそのWebviewの中で実行されるのです。しかし、Webアプリのアクションコマンドであるリンクをクリックすると、これらのアクションは、Webビューの内部で実行されます。 新しいブラウザを起動する . そのため、Webviewに最初に設定したCookie情報が消えてしまうので、ここでは別のプログラムにしています。
ブラウジングがアプリから離れることなく、すべてが同じ Webview 内に留まるように、Webview 上のクリックを妨害する必要があります。
WebView webview = new WebView(this);
webview.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
view.loadUrl(url); //this is controversial - see comments and other answers
return true;
}
});
setContentView(webview);
webview.loadUrl([MY URL]);
これで不具合は解消されました。
関連
-
[解決済み】文字列中の � を置換する方法
-
[解決済み】Javaメソッドスタブ
-
[解決済み] [Solved] java.lang.NoClassDefFoundError: クラスXXXを初期化できませんでした。
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] serialVersionUIDとは何ですか、またなぜそれを使用する必要がありますか?
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] Androidの「コンテキスト」とは何ですか?
-
[解決済み】「px」、「dip」、「dp」、「sp」の違いは?
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Javaパッケージが存在しないエラー
-
[解決済み] java のクラス内のコンストラクタは、指定された型に適用できない
-
[解決済み】Doubleはdereferencedできない?
-
[解決済み】スレッド「main」での例外 java.lang.StringIndexOutOfBoundsException: 文字列のインデックスが範囲外です。0 [閉店]
-
[解決済み】指定された子にはすでに親がいます。先に子の親に対してremoveView()を呼び出す必要がある(Android)
-
[解決済み】HTTPステータス500 サーブレットクラスのインスタンス化エラー [重複]。
-
[解決済み] hibernate のプロパティが見つかりません。
-
[解決済み】Javaで無限大を実装する方法とは?
-
[解決済み】keytoolエラー 鍵屋が改ざんされたか、パスワードが不正確だった場合
-
[解決済み】フォルダに書き込もうとすると「java.nio.file.AccessDeniedException」が発生する件