Scheme协议详细介绍
生活随笔
收集整理的這篇文章主要介紹了
Scheme协议详细介绍
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
目錄介紹
- 1.URL Scheme使用場景介紹
- 2.URL Scheme基礎(chǔ)介紹
- 2.1 什么是URL Scheme?
- 2.2 URL Scheme協(xié)議格式解釋
- 2.3 Scheme鏈接格式樣式
- 3.URL Scheme如何使用
- 3.1 設(shè)置Scheme
- 3.2 獲取Scheme跳轉(zhuǎn)的參數(shù),并添加跳轉(zhuǎn)方式
- 3.3 調(diào)用方式
- 3.4 如何判斷一個(gè)Scheme是否有效
- 3.5 Scheme在短信息中注意要點(diǎn)
好消息
- 博客筆記大匯總【16年3月到至今】,包括Java基礎(chǔ)及深入知識點(diǎn),Android技術(shù)博客,Python學(xué)習(xí)筆記等等,還包括平時(shí)開發(fā)中遇到的bug匯總,當(dāng)然也在工作之余收集了大量的面試題,長期更新維護(hù)并且修正,持續(xù)完善……開源的文件是markdown格式的!同時(shí)也開源了生活博客,從12年起,積累共計(jì)47篇[近20萬字],轉(zhuǎn)載請注明出處,謝謝!
- 鏈接地址:https://github.com/yangchong211/YCBlogs
- 如果覺得好,可以star一下,謝謝!當(dāng)然也歡迎提出建議,萬事起于忽微,量變引起質(zhì)變!
關(guān)于Scheme應(yīng)用案例
- https://github.com/yangchong211/YCAudioPlayer
- 可以參考該demo中的AppTool工具app,用aidl通信,還支持scheme協(xié)議跳轉(zhuǎn),挺好玩的!
關(guān)于鏈接
- 1.技術(shù)博客匯總
- 2.開源項(xiàng)目匯總
- 3.生活博客匯總
- 4.喜馬拉雅音頻匯總
- 5.其他匯總
1.URL Scheme使用場景介紹
- URL Scheme使用場景,目前1,2,5使用場景很廣,有沒有一種熟悉的感覺?
- 1.通過小程序,利用Scheme協(xié)議打開原生app
- 2.H5頁面點(diǎn)擊錨點(diǎn),根據(jù)錨點(diǎn)具體跳轉(zhuǎn)路徑APP端跳轉(zhuǎn)具體的頁面
- 3.APP端收到服務(wù)器端下發(fā)的PUSH通知欄消息,根據(jù)消息的點(diǎn)擊跳轉(zhuǎn)路徑跳轉(zhuǎn)相關(guān)頁面
- 4.APP根據(jù)URL跳轉(zhuǎn)到另外一個(gè)APP指定頁面
- 5.通過短信息中的url打開原生app
2.URL Scheme基礎(chǔ)介紹
2.1 什么是URL Scheme?
- android中的scheme是一種頁面內(nèi)跳轉(zhuǎn)協(xié)議,是一種非常好的實(shí)現(xiàn)機(jī)制,通過定義自己的scheme協(xié)議,可以非常方便跳轉(zhuǎn)app中的各個(gè)頁面
2.2 URL Scheme協(xié)議格式
String urlStr="http://www.ycbjie.cn:80/yc?id=hello&name=cg"; //url = protocol + authority(host + port) + path + query //協(xié)議protocol= http //域名authority= www.ycbjie.cn:80 //頁面path= /yc //參數(shù)query= id=hello&name=cg //authority = host + port //主機(jī)host= www.ycbjie.cn //端口port= 802.3 Scheme鏈接格式樣式
- 樣式:[scheme]?/[host]/[path]?[query]
3.URL Scheme如何使用
3.1 設(shè)置Scheme
- 在AndroidManifest.xml中對標(biāo)簽增加設(shè)置Scheme
3.2 獲取Scheme跳轉(zhuǎn)的參數(shù),并添加跳轉(zhuǎn)方式
public class SchemeFirstActivity extends AppCompatActivity {@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);Uri uri = getIntent().getData();if (uri != null) {//獲取指定參數(shù)值String type = uri.getQueryParameter("type");Log.e( "UrlUtils","main: " + type);if(type.equals("yangchong")){ActivityUtils.startActivity(GuideActivity.class);}else if(type.equals("main")){ActivityUtils.startActivity(MainActivity.class);}}finish();} }3.3 調(diào)用方式
- 3.3.1 原生調(diào)用
- 3.3.2 網(wǎng)頁調(diào)用
- 3.3.3 短信息中調(diào)用
3.4 如何判斷一個(gè)Scheme是否有效
PackageManager packageManager = getPackageManager(); Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse("yc://ycbjie:8888/from?type=yangchong")); List<ResolveInfo> activities = packageManager.queryIntentActivities(intent, 0); boolean isValid = !activities.isEmpty(); if (isValid) {startActivity(intent); }3.5 Scheme在短信息中注意要點(diǎn)
- 設(shè)置android:scheme="http"或者android:scheme="https"后,點(diǎn)擊短信息或者h(yuǎn)5頁面,發(fā)現(xiàn)沒有跳到指定的頁面,反而打開的是網(wǎng)頁鏈接。
關(guān)于我的博客
- 我的個(gè)人站點(diǎn):www.yczbj.org,www.ycbjie.cn
- github:https://github.com/yangchong211
- 知乎:https://www.zhihu.com/people/yang-chong-69-24/pins/posts
- 簡書:http://www.jianshu.com/u/b7b2c6ed9284
- csdn:http://my.csdn.net/m0_37700275
- 喜馬拉雅聽書:http://www.ximalaya.com/zhubo/71989305/
- 開源中國:https://my.oschina.net/zbj1618/blog
- 泡在網(wǎng)上的日子:http://www.jcodecraeer.com/member/content_list.php?channelid=1
- 郵箱:yangchong211@163.com
- 阿里云博客:https://yq.aliyun.com/users/article?spm=5176.100- 239.headeruserinfo.3.dT4bcV
- segmentfault頭條:https://segmentfault.com/u/xiangjianyu/articles
總結(jié)
以上是生活随笔為你收集整理的Scheme协议详细介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 禁用Windows Defender A
- 下一篇: ios 中h5网页跳到第三方后回到项目字