在我的应用程序UIActivityViewController中使用Pop WeChat / Weixin Safari-like Share Sheet?

时间:2015-02-07 18:42:19

标签: ios safari wechat

我正在尝试在我的iOS应用中弹出内置的Safari共享微信。但是找不到让微信应用程序出现在UIActivityViewController中的方法!

enter image description here

我注意到,当从照片库和Safari链接共享共享图像时,会显示WeChat应用程序图标。本机Notes应用程序没有WeChat选项。

不确定这是如何工作的,任何帮助表示赞赏!谢谢!

2 个答案:

答案 0 :(得分:3)

这是使用“分享”扩展程序完成的。有关详细信息,请参阅Apple文档:https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/ExtensibilityPG/ShareSheet.html#//apple_ref/doc/uid/TP40014214-CH12-SW1

关于为什么某些应用程序出现在某些共享上下文中而不出现在其他共享上下文中,这是因为Share扩展必须向iOS声明它支持哪种数据进行共享。据推测,微信开发人员没有为“纯”文本内容启用其Share扩展,就像在Notes应用程序中一样。请参阅此处了解如何设置共享扩展程序接受哪种数据:https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/ExtensibilityPG/ExtensionScenarios.html#//apple_ref/doc/uid/TP40014214-CH21-SW8

很遗憾,如果他们不允许,您将无法代表他们添加微信共享扩展程序,但您可以使用一些微信API来开发自己的应用扩展程序并启用文本内容。< / p>

希望它有所帮助。

答案 1 :(得分:2)

如果您尝试共享除URL之外的任何内容,

UIActivityViewController的图标将不会显示在WeChat中。 NSArray *items = @[[NSURL URLWithString:@"http://google.com"]]; UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:items applicationActivities:nil]; 仅接受网址帖子。此代码段应该适合您:

public boolean isConnected() throws InterruptedException, IOException {
    final String command = "ping -c 1 google.com";
    return Runtime.getRuntime().exec(command).waitFor() == 0;
}