刀科の技術学習ブログ

アプリサイドから、web系フロント・バックとAWSによるインフラ領域へ学習を進めていきます。

【Android】 WebViewで未アクセスドメインに事前Cookieをセットしてハマッた事

とあるお仕事で、WebViewでの画面遷移がうまくいかない現象が起こりまして、サーバー側の人にログを吐いてもらったらCookieが送られてなかったって話です。

簡易的に流れを再現すると、
 アプリ内WebViewで、ドメインAのURLにアクセス
    ↓
 この時に発行されるCookieを、まだアクセスしていないドメインBのCookieとして、
 CookieManager.SetCookie()してあげる
    ↓
 リダイレクトでドメインBのURLにアクセス
    ↓
 先ほどセットしたはずのCookieがついてない
こんな感じの流れ。
ちなみにこの現象は4系では発生しないようですね。

ソースレベルで詳しくは追わなかったけど、
解決方法としてはドメインBにアクセスしてからリロードすることで、1度目のアクセスではCookieを認識できなかったのに、リロードするとちゃんとCookie付きでアクセスできた!

ネット上でいくらか探してみたんですが、同様の記事が見当たらなかったのでブログに書いて残しておきます。
web系のことはよく知らないので日々勉強ですが、「そもそも、やってる事がBADケース」などご意見あれば、是非ともお願い致します。