ShareSDK分享 -QQAPI- QQApi.m:252 param error: url is nil

有一個項目 需要用到ShareSDK實現分享,點擊分享內容,需要跳轉到指定的url,不帶參數的url非常好跳,也沒什麼問題,但是 帶了參數或者服務器返回中文字符串之後:
比如http://localhost:8080/testShare?&param={“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和網絡請求總報錯卻找不到原因時,不妨換個角度,試試改變一下編碼方式,或許會有意象不到的收穫。

發佈了69 篇原創文章 · 獲贊 31 · 訪問量 46萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章