アップルのドキュメントによると:WKWebViewはSafariのCookieを使用していますか?
...クッキーは、すべてのアプリケーション間で共有され、プロセスの境界を越えての同期が維持されています。
しかし、こののiOS注があります:
クッキーがiOS版ではアプリケーション間で共有されていません。
基本的に私のアプリ内でSafariのCookieを使用することはできませんか?
アップルのドキュメントによると:WKWebViewはSafariのCookieを使用していますか?
...クッキーは、すべてのアプリケーション間で共有され、プロセスの境界を越えての同期が維持されています。
しかし、こののiOS注があります:
クッキーがiOS版ではアプリケーション間で共有されていません。
基本的に私のアプリ内でSafariのCookieを使用することはできませんか?
iOSセキュリティサンドボックスでは、iOSノートで発見したようにWKWebView
を使用しているアプリの間でCookieの共有を無効にしています。 WKProcessPool
を利用すると、アプリ内の複数のWKWebView
の間でクッキーを共有できます。
SFSafariViewController
(iOS 8以降はSafariに切り替える必要があります)とカスタムURLスキームを組み合わせて、SafariからアプリにCookieデータを渡す方法があります。
このアプローチの基礎次のようになります。
url
であなたのスクリプトSFSafariViewController
(以下iOS8とのためのSafari [[UIApplication sharedApplication] openURL:url]
を起動)my-custom-scheme:cookie=value
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
Safari View Controllerのポップアップが表示され、閉じる(またはiOS8以降のアプリを切り替える)。これを行うための静かな方法はありません(追加:メインウィンドウをSFSafariViewController
以上にする方法がありますが、これはAppleがサポートしていません)。