ShareSDK分享 -QQAPI- QQApi.m:252 param error: url is nil
2016-05-12 14:11
344 查看
有一个项目 需要用到ShareSDK实现分享,点击分享内容,需要跳转到指定的url,不带参数的url非常好跳,也没什么问题,但是 带了参数或者服务器返回中文字符串之后:
比如http://localhost:8080/testShare?¶m={“userid”:”152632”} ,这里面是发送的内容
如果按照正常的url来设置:
NSString * str_share_url=@”这里面是发送的内容”;
[UMSocialData defaultData].extConfig.qzoneData.url =str_share_url;
这样肯定会出错的。
仔细看了一下,友盟会将 “?”号前面的当作url,“?”号后面的 不会被读取,说到这 ,都知道问题的所在了吧。这是因为传过去的字符串,带参数,是需要进行编码的( 防止有中文,所以要进行编码)。
正确的做法:
NSString * str_share_url=@”这里面是发送的内容”;
//对url字符串中的特殊字符及中文进行编码
NSString *new_url=[strURl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]
//设置qq空间的链接
[UMSocialData defaultData].extConfig.qzoneData.url =new_url;
希望可以帮助需要的人。这个地方 浪费了我将近4个小时。
备注:必须注意到的一个问题:开发中涉及到url和网络请求总报错却找不到原因时,不妨换个角度,试试改变一下编码方式,或许会有意象不到的收获。
比如http://localhost:8080/testShare?¶m={“userid”:”152632”} ,这里面是发送的内容
如果按照正常的url来设置:
NSString * str_share_url=@”这里面是发送的内容”;
[UMSocialData defaultData].extConfig.qzoneData.url =str_share_url;
这样肯定会出错的。
仔细看了一下,友盟会将 “?”号前面的当作url,“?”号后面的 不会被读取,说到这 ,都知道问题的所在了吧。这是因为传过去的字符串,带参数,是需要进行编码的( 防止有中文,所以要进行编码)。
正确的做法:
NSString * str_share_url=@”这里面是发送的内容”;
//对url字符串中的特殊字符及中文进行编码
NSString *new_url=[strURl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]
//设置qq空间的链接
[UMSocialData defaultData].extConfig.qzoneData.url =new_url;
希望可以帮助需要的人。这个地方 浪费了我将近4个小时。
备注:必须注意到的一个问题:开发中涉及到url和网络请求总报错却找不到原因时,不妨换个角度,试试改变一下编码方式,或许会有意象不到的收获。
相关文章推荐
- Transact-SQL 语法约定 (Transact-SQL)
- openwrt15.05增加failsafe模块,WEB登陆提示错误
- JNI 使用java调用c++动态库
- 《Python核心编程》 18.多线程编程(一)
- 关于UITableView界面刷新
- Google protobuf
- jq获取两个日期相差天数、小时、分秒
- CodeForces 626C Block Towers(二分)
- 拖拽效果的实现
- 『Scrapy学习』基础知识
- 构建之法阅读笔记02
- 【Caffe】下载与安装
- 移动web页面头部书写
- JS&CSS压缩工具YUICompressor
- codeforces 672C - Recycling Bottles 贪心水题
- 使用 spring 容器管理 Filter
- 按钮点击,图片改变,显示点击效果
- 使用jni实现在C语言中调用Java的方法
- initWithFrame 和 initWithCoder
- 报错:Missing artifact.com.oracle:ojdbc14:10.0.2.0