iPad アプリに Box サポートを追加しています。公式の SDK を試しましたが、次の理由で使用したくありません。
UIModalPresentationFormSheet
ログイン ページは、iPad のスタイルを持つモーダル コントローラーには広すぎます。https://m.box.net/api/1.0/auth/UIWebView
のコンテンツをロードするSDK ホストは、おそらく最小幅が 768px に設定された HTML を返します (ただし、HTML はチェックしていませんが、ここで推測しています)。ログイン ページの HTML に Google Apps 認証オプションが表示されません。ページの完全なデスクトップ バージョンはそうです。
ログイン ページはユーザーでホストされ
UIWebView
ているため、アプリの作成者ではなく、Box に資格情報を提供していることを確認できません。認証、フォルダー/ファイルのリスト、およびコンテンツのダウンロードだけで、SDK 機能全体は必要ありません。私のアプリは他のクラウド ストレージ プロバイダーも使用しているため、統一されたファイル ブラウジング エクスペリエンスを提供したいと考えています。
これが私がやろうとしていることです:
アプリのカスタム URL スキームを追加します。「myapp」としましょう。
アプリの Box のアプリケーション設定で、リダイレクト URL を に設定します
myapp://RedirFromBoxAuth
。
ユーザーがアプリ内から Box を参照することを選択した場合、次のようにします。
電話でチケットを入手
GET https://www.box.com/api/1.0/rest?action=get_ticket&api_key={API_KEY}
チケットを抽出し、これを呼び出し
openUrl
てhttps://www.box.com/api/1.0/auth/{TICKET}
Safari を開き、ユーザーが自分の資格情報を入力できるようにします。これは、ログイン ページの完全なデスクトップ バージョンです。ログインに成功すると、Box のサーバーは Safari に にリダイレクトするよう
myapp://RedirFromBoxAuth?ticket={TICKET}&auth_token={TOKEN}
に指示し、次に iOS に制御をアプリに渡すように指示します。アプリ
handleOpenURL
が通知を受け取り、認証トークンを抽出して REST API を使用できるようになりました。
コメントしてください、それは良い計画ですか?簡単なプロトタイプを作成しましたが、動作しているように見えますが、何か不足している可能性がありますか?
Box チーム、この認証モデルを使用するアプリは OneCloud に含める資格があるか教えてください。