最近项目中集成了原生分享UIActivityViewController,但在使用过程中发现了一个头疼的问题,记录下来以供来者参考:
代码如下:
项目中有大量的文章内容分享,但在测试过程中发现了部分标题不显示这一问题,当下反应可能有如下问题:
1、官方api,主要是在activityItems携带分享参数。所以怀疑是后台部分标题没有返回
经过联调,排除这一问题,即使把标题写死同样还是会出现类似问题
2、系统分享SDK存在bug,没法解决(想法天真)
去商店找了几个使用社会分享的app,一切正常,排除
继续查看代码,官方文档说明,代码没有任何问题
3、怀疑html页面有问题
初次尝试,activityItems只传递url,标题放空,页面正常显示标题。原来页面中的标题不是从参数中传递的,是从网页中获取的。为了验证这一猜想,我把正常文章和出问题的文章在google开发者工具中打开,查看了html代码
截图如下:
发现几个有意思的标签,og,这玩意是啥?直觉告诉我,问题出在这货身上。
og是一种新的HTTP头部标记,即Open Graph Protocol:
The Open Graph Protocol enables any web page to become a rich object in a social graph.
即这种协议可以让网页成为一个“富媒体对象”。
用了Meta Property=og标签,就是你同意了网页内容可以被其他社会化网站引用等,目前这种协议被SNS网站如Fackbook、renren采用
总而言之,加上og协议后再也没出现过无标题的问题,而且,图一中绿框内的url暴露问题也完美解决掉了。