Apple 的文档清楚地说明了使用 SLComposeViewController 提供与其他社交网络(如 Twitter 和 Facebook)的共享功能。
典型代码将用于isAvailableForServiceType
验证特定服务是否可用,然后将完成处理程序添加到视图控制器,SLComposeViewControllerResult
可以在其中检查SLComposeViewControllerResultCancelled
或SLComposeViewControllerResultDone
检查用户是否点击了“发布”按钮或“取消”按钮共享视图显示后。
这里的问题是,如果您用于SLComposeViewControllerResultDone
验证用户是否发出了请求,您实际上并不会检查它是否成功,例如当用户连接受限或没有连接时。
我已尝试使用我的一个应用程序对此进行测试,并注意到该SLComposeViewControllerResultDone
常量仍然有效,即使已打开飞行模式以致无法请求。这意味着用户填写共享视图字段并点击“发布”,即使我真的应该检查以确保发布确实成功,我的成功代码也会执行。
目前,我认为最好的选择是使用标准的可达性选项(如这里推荐)检查 Internet 连接,如果连接不可用,则禁用共享按钮,但我不确定这是否是最佳解决方案它不考虑用户可以点击“发布”但实际请求不成功的有限连接。
我的问题是检测共享请求是否成功完成的最佳方法是什么?