9

Safari(コンテキストトークン)を介してコンテキストを設定し、ネイティブiOSアプリからそのコンテキストを読み取る必要があります。これを行うためのベストプラクティスは何ですか?

これまでのいくつかの考え:

  1. HTML 5データベースでコンテキストを設定しますが、データベースにはSafariからしかアクセスできない可能性があるため、これが機能するかどうかはわかりません。ネイティブアプリでWebUIViewを使用すると、Safariと同じHTML5データベース/ローカルストレージにアクセスできますか?
  2. デバイスストレージにコンテキストを設定しますが、Safariが実際にデバイスストレージに書き込めるかどうかわからないため、これが機能するかどうかはわかりません。
4

3 に答える 3

4

次の2つのオプションのいずれかをお勧めします。

  • たとえば、ユーザーアカウントを作成することにより、WebサーバーがアプリとWebサイトの両方でユーザーを追跡できるようにします。

また

  • アプリをプロトコルハンドラーとして登録することにより、URLスキームを介してコンテキストトークンをアプリにすぐに渡します。詳細については、こちらをご覧ください

    提案された方法:

    1. リンクとコンテキストトークンを含む電子メールを送信します。ユーザーがリンクをクリックすると、コンテキストトークンがサファリのCookieに保存され、アプリのダウンロードのためにアプリストアにリダイレクトされます。
    2. ユーザーがアプリをダウンロードして開いたら、ユーザーにボタンを表示し、ユーザーがアプリをクリックすると、SafariでWebページを開きます。
    3. Safariはコンテキストトークンを使用してCookieをロードし、yourAppName:// contextToken=12345678のようなURLスキームを使用して別のリンクをトリガーします。リンクをクリックすると、URLからコンテキストトークンを読み取るアプリが開きます。

サファリとネイティブアプリの間でデータを直接共有するためのベストプラクティスはありません。また、そうすることを意図したものではありません。すべてのCookieとストレージはアプリごとにサンドボックス化され、サファリには独自のサンドボックスがあります。

サーバーにユーザーアカウントを介して仕事をさせることは、最良かつクリーンな方法です。これが、ユーザーアカウントを持っている理由です。特定のURLを読み取るためのプロトコルハンドラーを試していない場合は、それも便利だと思います。

于 2012-08-01T16:47:11.550 に答える
1

サファリでユーザーをリダイレクトしているサーバーによってホストされている最初の起動時にアプリにURLをヒットさせ、IPアドレス、時間、iOSバージョンなどを比較して、少なくともおおよその一致を取得できますか?おおよその一致が不十分な場合は、おおよその一致が表示されたら、アプリでサファリを開いて、Cookieを介して識別を確認することができます。

于 2012-08-01T16:46:32.960 に答える
-1

WebViewJavascriptBridgeを使用すると、UIWebViewとネイティブアップの間でメッセージを簡単に送信できます。

ただし、あなたの場合は、カスタムURLスキーム(電子メールからアプリへ、インストール後)を使用するという受け入れられた回答の提案が最も理にかなっています。

于 2012-09-19T00:33:54.153 に答える