2012-09-22 11 views
10

私はVimeo iOSネイティブアプリがモバイルSafariにCookieを設定できることがわかりました。それはどうですか?VimeoのようなiOSネイティブアプリは、モバイルSafariにCookieを設定する方法はありますか?

レポ手順:

1、iOSデバイス上のVimeoのiOSネイティブアプリをインストールします。

2このVimeo iOSネイティブアプリを開き、Vimeoアカウントでサインインします。

3、Safariを開いて、Webページ "https://vimeo.com/"を開きます。 Vimeoにサインインしていないことがわかります。

4、Vimeo iOSネイティブアプリを開き、左側のナビゲーションバーにある[ヘルプ(疑問符)]アイコンをクリックします。 VimeoのWebページヘルプセンターがUIWebViewを介して開かれていることがわかります。その後、このヘルプセンターを閉じることができます。

5、Safariを開いて、Webページ "https://vimeo.com/"を開きます。あなたはVimeoにサインインされています。

ありがとうございます。

答えて

5

this questionに示すように、NSHTTPCookieStorageクラスを使用してCookieを設定できます。

EDIT:狐が指摘したように
、ドキュメントはそれはOSXでないように、これはiOSのアプリケーションで間を動作しませんと述べています。

私はこの時点でテストする時間がありませんが、おそらくjavascriptを使用してstringByEvaluatingJavaScriptFromStringメソッドUIWebViewを使用してクッキーを設定できます。共有されますか?ここで私はと呼ばれることができ、インターネット上で見つかった機能は次のとおりです。

function SetCookie(cookieName,cookieValue,nDays) { 
var today = new Date(); 
var expire = new Date(); 
if (nDays==null || nDays==0) nDays=1; 
expire.setTime(today.getTime() + 3600000*24*nDays); 
document.cookie = cookieName+"="+escape(cookieValue) 
       + ";expires="+expire.toGMTString(); 
} 
+5

「NSHTTPCookieStorage」の文書によると、_iOS注:iOSのアプリケーション間でCookieは共有されません。 – Kitsune

+0

面白いことに、知っておいてよかった! – lnafziger

+0

@Kitsune _CookiesはiOSのアプリケーション間で共有されません._iOSネイティブアプリはモバイルSafariにCookieを設定できます。しかし、ネイティブアプリはモバイルSafariでクッキーを取得または削除することはできません。 ** Right?** – weilou

3

それはVimeoののネイティブアプリはすぐにあなたをリダイレクトすることができヘルプページへのクエリ文字列を介して、トークンに記号のいくつかの種類を渡している可能性がありますクッキーを設定した後、URLにサインイントークンのないページに移動します。 CookieはWebサーバーによってUIWebView(Safari)に設定されるため、Safariアプリケーションを使用するとCookieが検出されます。 iOS版でサポートするAPIを必要としない

...

0

これは明らかにOPの質問の時に適用されていませんが、最近でクッキーがiOS版9にSafariやSFSafariViewControllerインスタンス間で共有されましたVimeoはこの結果を得るために不可視のSFSafariViewControllerでクッキーを設定できました。ただし、これはiOS 11で変更されました。今後、すべてのアプリ(Safariを含む)には完全にサンドボックス化されたデータストアが追加されます。公式発表here(17:28マークで)。

iOS 11では、このような動作はもはや可能ではありません(実際には、この変更についてのAppleの発表では、これが特筆すべき例でした)。

保証されたユーザーマッチをSafariからアプリに渡す方法が必要な場合は、Branch.ioなどの既存のデバイスマッチングネットワークを使用する必要があります(完全開示:私は支店チームにいる) 。 Cookieパススルーhereの代わりにBranchが使用する技術について読むことができます。

関連する問題