0

私はiPhone用のモバイルアプリを開発しています。このアプリは、主に別の国で休暇を過ごす人々が使用し、インターネット トラフィックのコストが高いため、ほとんどの場合オフラインになります。

ただし、私がアプリを開発している会社は、ユーザーがインターネットに接続していないときでも「Facebook 共有」機能を使用できるようにしたいと考えています。

アプリの [リンクを共有] ボタンをクリックする方法で機能するはずですが、オフラインであるというメッセージが表示され、オンラインに戻るとすぐにリンクが共有されます。

私はこれを行う方法を理解しようとしています。共有したいリンクを公式の FB アプリに fb:// プロトコル (またはその他) 経由で渡すことはできますか?

それとも、自分で共有したいリンクを内部データベースに置き、再びオンラインになったときにそれらをウォールに投稿する必要がありますか?

それとも他の方法??

どんな提案でも大歓迎です。私は非常に迅速な解決策を好み、誰かがこれを行う方法を知っていることを願っています. 共有リンクを公式の FB アプリに渡したいと思っていましたが、これは再びオンラインになったときにすべてを処理します!?

アイデアをありがとう!

4

1 に答える 1

0

あなたのアプローチは、リンク共有コードが送信されるまでリクエストを自動的にキャッシュするようにすることです。アプリは詳細を気にする必要はありません。リンクを投稿するだけで、API から「失敗」、「成功」、または「延期」の応答を取得し、それに応じてユーザーに通知できます。

リンク共有コードは、現在 FB に投稿できるかどうかを内部的にチェックし、そうでない場合 (ユーザーが現在オフラインであるか、Facebook トークンの有効期限が切れているなどの理由で) 後で使用できるように保存します。このクラスは、接続を定期的に (たとえば、アプリがフォアグラウンドになったとき、またはアプリの次回起動時にクラスが初期化されたとき) 再チェックし、トークンがまだ有効かどうかをチェックし、必要に応じて FB ログインを実行します。 . 有効なトークンを取得すると、保留中のリクエストを反復処理して処理できます。

本当にきれいにしたい場合は、着信リクエストを受け入れて何かを実行し、今すぐ実行できるかどうかを確認し、後で実行または保存し、保留中のキュー内のリクエストを定期的にチェックするコードを分離できます。 . このクラスは、リクエストが何をするか、どのように実行されるかをまったく知りません。実際の作業を行うためのプロトコルを実装し、facebook などを知っている別のクラスと連携します。そのようなセットアップですが、あるとしたら何と呼ばれているのかわかりません。

更新: いくつかの調査を行ったところ、これは「Fire-and-Forget パターン」に非常に似ていることがわかりました。

于 2013-04-11T16:00:13.033 に答える