歡迎交流,互聯(lián)網(wǎng)產(chǎn)品開發(fā)解決方案CoreThink:http://corethink.cn
瀏覽器自定義協(xié)議
一、是什么
正如http://baidu.com,
整個(gè)網(wǎng)址稱之為url,http部分我們稱之為scheme,通過這樣的鏈接,我們可以打開相應(yīng)的網(wǎng)頁;與此相似的,也有類似的協(xié)議可以打開對(duì)應(yīng)的app,比如weixin://可以打開微信,weixin://dl/moments則是微信中的朋友圈。不過這樣的協(xié)議是app的開發(fā)者在開發(fā)的時(shí)候自己定義,比如我們可以自定義myapp://*,相應(yīng)的,如果他沒有定義,我們就沒有辦法在網(wǎng)頁或者其它app中調(diào)起它了。
二、常見的例子
1.系統(tǒng)級(jí):
tel://——打電話
sms://——發(fā)短信
mailto://——發(fā)郵件
2.應(yīng)用級(jí):
mqq://——QQ
weixin://——微信
taobao://——淘寶
sinaweibo://——微博
三、在瀏覽器中如何使用
1.常用:
最常用的做法就是直接使用 a 標(biāo)簽:
<a href="myapp://">Open my app</a>
<a href="weixin://"> </a>
2.不常用
自定義協(xié)議,不像網(wǎng)頁的URL,網(wǎng)頁和網(wǎng)址都是一一對(duì)應(yīng)的關(guān)系,而在app中,由于URLScheme并沒有一個(gè)統(tǒng)一的標(biāo)準(zhǔn),這些協(xié)議就可能出現(xiàn)多對(duì)多點(diǎn)情況,即一個(gè)app可以定義多個(gè)scheme,而一個(gè)scheme可能對(duì)應(yīng)多個(gè)應(yīng)用,這就給我們的使用造成了一些麻煩。
其實(shí)對(duì)于自定義協(xié)議的使用遠(yuǎn)不止打開應(yīng)用這么簡單的操作,比如,當(dāng)我們想調(diào)起字典的時(shí)
候,可以在地址中加入?yún)?shù),去讀取剪切板clipboard,也可以在點(diǎn)擊鏈接的時(shí)候讓你進(jìn)行一些輸入操作,甚至可以設(shè)置回調(diào)地址。
但是由于前面提到的原因,它并沒有一個(gè)統(tǒng)一標(biāo)準(zhǔn),能不能實(shí)現(xiàn),全憑app自己有沒有設(shè)置這些功能,所以這里沒辦法給出一個(gè)放之四海皆準(zhǔn)的用法,能不能用,只能具體問題具體分析了,放一個(gè)參考網(wǎng)站:http://sspai.com/31500#04,
里面有些用法,可作參考,然而里面用來舉例的app我基本沒用過,而我們常用的那些app支不支持,以后有機(jī)會(huì)一一試過才知道。
四、在HybridApp中如何自定義Scheme開門見山,有一個(gè)Cordova插件——cordova-plugin-customurlscheme:https://github.com/EddyVerbruggen/Custom-URL-scheme。
詳細(xì)用法見官網(wǎng)。 貼一個(gè)android原生開發(fā)作為輔助資料:
https://developer.android.com/training/basics/intents/filters.html。