移動平臺少不了跟二維碼打交道,關於二維碼,有篇好文章推薦
目前我想實現一個功能,掃描二維碼實現,當採用掃碼app時轉到軟體市場下載,當採用已安裝的指定app時自動登入,就想到了一個方案:
以下載apk連結作為url並且後面接上登入使用的身份金鑰,
可是,這樣的字串好長啊!
我們知道二維碼只能針對文字進行編碼,並且如果字串越長,可能越大,當然可以縮放可能又會導致掃描的時候驗別率下降
咋辦呢?
想到了微博用的短域名方案,經常見到的t.cn,經研究,只允許在weibo內部使用,並沒有開放的api。
這個時候,還是百度和google解決問題
http://goo.gl/
http://dwz.cn/
其中,goo.gl號稱最快的短域名服務,可惜某些原因,你懂的。。甚至直接線上二維碼生成的功能,都省了後臺的事了。。
好吧,回到正題,百度可以解決問題,通過post介面到指定的url可以得到longurl 及 tinyurl的相互轉換,訪問短url直接自動跳轉
linux下用上萬能的curl
curl -d "url=http://www.baidu.com/s?wd=%E7%9F%AD%E5%9F%9F%E5%90%8D%E6%9C%8D%E5%8A%A1&rsv_spt=1&issp=1&f=8&rsv_bp=0&rsv_idx=2&ie=utf-8&tn=baiduhome_pg" dwz.cn/create.php
響應:
{"tinyurl":"http:\/\/dwz.cn\/wP01K","status":0,"longurl":"http://www.baidu.com/s?wd=短域名服務","err_msg":""}
然後再使用短域名獲得長在址
curl -d "tinyurl=http://dwz.cn/wP01K" dwz.cn/query.php
響應:
{"status":0,"longurl":"http://www.baidu.com/s?wd=短域名服務"}
如果直接訪問將跳轉
http://dwz.cn/wP01K