0

我正在为 iPhone 开发一个移动应用程序。该应用程序将主要由在不同国家/地区度假的人使用,并且由于互联网流量的高成本,大部分时间将处于离线状态。

但是,我正在为其开发应用程序的公司希望用户能够在人们未连接到互联网时也能够使用“Facebook Share”功能。

它应该以他们单击应用程序中的共享链接按钮的方式工作,但随后会收到一条消息,表明他们处于离线状态,并且一旦他们再次在线,链接就会被共享。

我试图弄清楚如何做到这一点。我可以通过 fb:// 协议(或其他任何方式)将我想要分享的链接传递给官方 FB 应用程序,并且 FB 应用程序在再次在线后立即处理发布/分享?

还是我必须自己做,把我想分享的链接放在内部数据库中,然后当我再次在线时将它们发布到墙上?

还是其他方式??

欢迎任何建议,我更喜欢一个非常快速的解决方案,并希望有人可能知道如何做到这一点。我希望我可以将分享链接传递给官方 FB 应用程序,当它再次上线时,这个应用程序会处理所有事情!?

谢谢你的想法!

4

1 回答 1

0

您的方法应该是让您的链接共享代码自动缓存请求,直到它们被发送。然后,应用程序不需要关注细节 - 它可以发布链接并从您的 API 获得“失败”、“成功”或“延迟”响应,并相应地通知用户。

然后,您的链接共享代码可以在内部检查它当前是否可以发布到 FB,如果不能(因为用户当前离线或 Facebook 令牌已过期),它将存储它以备后用。然后,此类将定期重新检查(例如,当应用程序进入前台时或在下次应用程序启动时初始化类时)以检查连接性,然后它将检查令牌是否仍然有效并在需要时执行 FB 登录. 一旦它拥有一个有效的令牌,它就可以遍历待处理的请求并对其采取行动。

如果你真的想让它变得干净整洁,你可以分离出接受传入请求的代码来做某事,检查它现在是否可以执行,是否可以执行或存储它以供以后使用,并定期检查待处理队列中的任何请求. 这个类不会知道请求做什么或它们是如何执行的,它将与另一个实现协议的类一起工作以完成实际工作并了解 facebook 等。甚至可能存在这样的设计模式设置,但我不知道如果有它叫什么。

更新:我做了一些研究,发现这与“即发即弃模式”非常相似。

于 2013-04-11T16:00:13.033 回答