1

iPad アプリに Box サポートを追加しています。公式の SDK を試しましたが、次の理由で使用したくありません。

  1. UIModalPresentationFormSheetログイン ページは、iPad のスタイルを持つモーダル コントローラーには広すぎます。https://m.box.net/api/1.0/auth/UIWebViewのコンテンツをロードするSDK ホストは、おそらく最小幅が 768px に設定された HTML を返します (ただし、HTML はチェックしていませんが、ここで推測しています)。

  2. ログイン ページの HTML に Google Apps 認証オプションが表示されません。ページの完全なデスクトップ バージョンはそうです。

  3. ログイン ページはユーザーでホストされUIWebViewているため、アプリの作成者ではなく、Box に資格情報を提供していることを確認できません。

  4. 認証、フォルダー/ファイルのリスト、およびコンテンツのダウンロードだけで、SDK 機能全体は必要ありません。私のアプリは他のクラウド ストレージ プロバイダーも使用しているため、統一されたファイル ブラウジング エクスペリエンスを提供したいと考えています。

これが私がやろうとしていることです:

  1. アプリのカスタム URL スキームを追加します。「myapp」としましょう。

  2. アプリの Box のアプリケーション設定で、リダイレクト URL を に設定しますmyapp://RedirFromBoxAuth

ユーザーがアプリ内から Box を参照することを選択した場合、次のようにします。

  1. 電話でチケットを入手GET https://www.box.com/api/1.0/rest?action=get_ticket&api_key={API_KEY}

  2. チケットを抽出し、これを呼び出しopenUrlhttps://www.box.com/api/1.0/auth/{TICKET}Safari を開き、ユーザーが自分の資格情報を入力できるようにします。これは、ログイン ページの完全なデスクトップ バージョンです。

  3. ログインに成功すると、Box のサーバーは Safari に にリダイレクトするようmyapp://RedirFromBoxAuth?ticket={TICKET}&auth_token={TOKEN}に指示し、次に iOS に制御をアプリに渡すように指示します。

  4. アプリhandleOpenURLが通知を受け取り、認証トークンを抽出して REST API を使用できるようになりました。

コメントしてください、それは良い計画ですか?簡単なプロトタイプを作成しましたが、動作しているように見えますが、何か不足している可能性がありますか?

Box チーム、この認証モデルを使用するアプリは OneCloud に含める資格があるか教えてください。

4

1 に答える 1

1

これは良い戦略のように思われ、おそらく通常のリダイレクトよりも優れた UX/より簡単な実装になるでしょう。この方法で実装することで奇妙なエッジ ケースに遭遇した場合はお知らせください。

于 2012-06-04T22:23:57.900 に答える