標(biāo)簽: iOS、QQ略号、分享刑峡、appinstall
前幾天開發(fā),測試吐槽iOS分享鏈接到QQ玄柠,在QQ內(nèi)打不開突梦,當(dāng)時找安卓同學(xué)發(fā)現(xiàn)沒有問題,經(jīng)過排查羽利,發(fā)現(xiàn)QQ給自己的鏈接后面默認(rèn)拼接了一個appinstall=0
參數(shù)宫患,查了騰訊開放平臺,這個參數(shù)是QQ定向分享來判斷是否安裝了自己的軟件这弧。
但是這并不能解決問題撮奏,這個參數(shù)我是沒有找到如何取消,不讓拼接這個參數(shù)当宴,但是問題得解決啊。和同事討論后泽疆,從URL來看户矢,下面是iOS NSURL的一些屬性。
@property (nullable, readonly, copy) NSString *host;
@property (nullable, readonly, copy) NSNumber *port;
@property (nullable, readonly, copy) NSString *user;
@property (nullable, readonly, copy) NSString *password;
@property (nullable, readonly, copy) NSString *path;
@property (nullable, readonly, copy) NSString *fragment;
@property (nullable, readonly, copy) NSString *parameterString;
@property (nullable, readonly, copy) NSString *query;
@property (nullable, readonly, copy) NSString *relativePath; // The same as path if baseURL is nil
我們分享的URL大致是這個樣子的:http://www.baidu.com/?name=test#!/index/color
分享后:http://www.baidu.com/?name=test#!/index/color&appinstall=0
殉疼。
仔細(xì)會發(fā)現(xiàn)梯浪,我們有一個name=test
的參數(shù),#!/index/color
這個是fragment瓢娜,fragment用來定位跳轉(zhuǎn)到本頁面指定位置挂洛,例如:<p id="bottom">
#號后面跟bottom,這個頁面加載出來會自動跳轉(zhuǎn)到bottom處眠砾。
問題就跟fragment有關(guān)虏劲,分享前是:#!/index/color
,分享后:#!/index/color&appinstall=0
褒颈。瀏覽器默認(rèn)將#后面的都當(dāng)成了fragment柒巫,所以導(dǎo)致頁面加載沒有問題,就是定位不到位置谷丸,所以顯示不出來堡掏。
最后問題解決就是讓同事在分享前后面拼接一個?刨疼。http://www.baidu.com/?name=test#!/index/color泉唁?
鹅龄。這樣QQ如果拼接上,那么瀏覽器會appinstall=0
解析成請求參數(shù)亭畜。
結(jié)尾
如果有知道好的解決方案扮休,求告知。問題就是鏈接被拼接了一個參數(shù)后解析錯誤贱案,自己對這方面不是很了解肛炮,自己的想法,將fragment放到host后面和請求參數(shù)換一個順序宝踪,請求參數(shù)放到鏈接最后面侨糟,這樣不管怎么拼接參數(shù)都沒有問題。