iOS自带分享功能,包含系统App和第三方App,可以分享多种格式的文件
也可以分享url(图标+描述+链接)
1.弹出分享面板
UIActivityViewController *activity = [[UIActivityViewController alloc] initWithActivityItems:@[@"分享",[UIImage imageNamed:@"photo"],[NSURL URLWithString:@"http://testshare.html"]] applicationActivities:nil];
UIPopoverPresentationController *popover = activity.popoverPresentationController;
if (popover) {
popover.sourceView = self.view;
popover.permittedArrowDirections = UIPopoverArrowDirectionUp;
}
[self presentViewController:activity animated:YES completion:NULL];
上面的代码中
initWithActivityItems是一个数组.把需要分享的标题,图标,连接放在里面,第三方App拿到的时候,会在openURL中处理,但是没有分享的描述,因此,如果分享到微信中,分享的描述会被显示成链接地址,如果分享到qq中,则默认显示html的title(而且是重复显示),不同的版本应该有所不同
显示的是html链接
2.添加分享消息的描述
分享的描述是在网页中添加的
在html标签中添加
<html lang="zh-cn" prefix="og: http://ogp.me/ns#">
然后增加meta标签
<meta property="og:description" content="这是内容">
<meta name="twitter:title" content="标题">
<meta name="twitter:description" content="这是内容">
ogp协议是一个用于社交平台的开放协议,添加一系列meta标签,社交App会进行解析,html标签中的prefix="og: http://ogp.me/ns#只是作为标示,不加也不会影响meta标签生效
有下面几种meta
og:title
og:type 类型
og:image 略缩图地址
og:url 页面地址
og:description 页面的简单描述
og:site_name 页面所在网站名
og:videosrc 视频或者Flash地址
og:audiosrc 音频地址
从App Store分享一个app,然后查看源码可以看到所有meta标签,可以用做参考
其中qq似乎使用的是twitter:,而且必须要添加twitter:title
因此qq和微信至少需要添加上面三个meta标签
另外qq带有缓存,同一个html修改标签不会立即生效
网友评论