8

アプリで Dropbox にファイルをアップロードしようとしていて、DBRoulette テスト プログラムをダウンロードしましたが、ここで説明する奇妙な動作も見つかりました。

基本的に、アプリを認証するためのボタンを押して、Dropbox とのリンクを承認すると、ライブラリが提供するコマンドがあります。

プライベート DropboxAPI mApi;

mApi.getSession().startAuthentication(コンテキスト);

このコマンドが処理されると、ネイティブ ブラウザが開き、認証を受け入れるかどうかを示す [拒否] または [許可] ボタンが表示されますが、問題は、それを押すと、ネイティブ ブラウザがバックグラウンドにあり、準備ができている間にアプリが戻ってきて自分自身を表示することです。アプリを終了すると再び表示されますが、これはかなり面倒です(ただし、アプリを初めて起動したときのみ表示されます)

ps チュートリアルで提案されている次のコードを onResume で使用することを忘れる前に

session.finishAuthentication();

この問題をよりよく理解し、(できれば) Webview で承認をリダイレクトするか、ボタンが押されて認証が処理されたらネイティブ ブラウザを閉じることで解決してくれる人に感謝します。

4

1 に答える 1

3

残念ながら、それについてできることはあまりありません。

認証プロセスはサーバー側、つまり Dropbox で実行されます。つまり、Dropbox は、クライアントが従わなければならないユーザー認証の一連のアクションを定義します。これは、 OAuth認証フローの考え方の一部です。

私自身が経験したことは、公式の Dropbox アプリがインストールされている場合、アプリは (ブラウザではなく) ユーザーの認証に使用され、ユーザーが許可/キャンセル ボタンを押すと閉じられるという事実です。

于 2012-08-23T18:43:02.720 に答える