2016-10-20 4 views
0

アップルのドキュメントによると:WKWebViewはSafariのCookieを使用していますか?

...クッキーは、すべてのアプリケーション間で共有され、プロセスの境界を越えての同期が維持されています。

しかし、こののiOS注があります:

クッキーがiOS版ではアプリケーション間で共有されていません。

基本的に私のアプリ内でSafariのCookieを使用することはできませんか?

答えて

2

iOSセキュリティサンドボックスでは、iOSノートで発見したようにWKWebViewを使用しているアプリの間でCookieの共有を無効にしています。 WKProcessPoolを利用すると、アプリ内の複数のWKWebViewの間でクッキーを共有できます。

SFSafariViewController(iOS 8以降はSafariに切り替える必要があります)とカスタムURLスキームを組み合わせて、SafariからアプリにCookieデータを渡す方法があります。

このアプローチの基礎次のようになります。

  1. ロードSafariのビューコントローラurlであなたのスクリプトSFSafariViewController(以下iOS8とのためのSafari [[UIApplication sharedApplication] openURL:url]を起動)
  2. を使用すると、カスタムURLスキームをロードしよう渡すクッキーデータは、IE my-custom-scheme:cookie=value
  3. その後、- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
にCookieデータを受信するアプリ

Safari View Controllerのポップアップが表示され、閉じる(またはiOS8以降のアプリを切り替える)。これを行うための静かな方法はありません(追加:メインウィンドウをSFSafariViewController以上にする方法がありますが、これはAppleがサポートしていません)。

関連する問題