友盟使用QQ分享打开失败

今天在测试一个H5页面的时候,测试报告了一个BUG:某页面存在两个分享,但是在使用QQ分享的时候,一个分享成功,一个却一直提示“打开QQ失败”。
之前也报告过这样的问题,但是由于线上环境没怎么发现,就没有去解决。
这次刚好有时间,就决定解决掉这个BUG。
Debug模式下仔细看了下友盟的log,发现在QQ打开失败时控制台输出:
-QQAPI- QQApi.m:252 param error: url is nil
然后查了一下QQ分享SDK的API,找到了问题的关键:
分享成功的链接里面没有带任何参数,而一直打不开QQ的分享链接带参数,而且参数是中文。在查阅友盟分享API发现:
友盟会将 "?"号前面的当作url,“?”号后面的 不会被读取,说到这 ,都知道问题的所在了吧。这是因为传过去的字符串,带参数,是需要进行编码的( 防止有中文,所以要进行编码)。
所以如果在分享链接中添加有参数,那么需要将链接中的中文及特殊字符进行编码,具体方法如下:
NSString *shareUrl = [[NSString stringWithFormat:@"http://www.jianshu.com?userName=张三"] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

希望这篇文章可以帮到你!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,259评论 4 61
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,680评论 25 708
  • 最近看了一部名为《私人订制》的电影,剧情主要讲述的是为不同阶层的人圆梦的事情,感悟最深的尤其的是最后对大自然道歉的...
    Y云影阅读 263评论 0 1
  • 非遗展示篇周末聚颁奖典礼 曾经的记忆
    江海阳阅读 161评论 0 0