Scheme协议详细介绍
生活随笔
收集整理的這篇文章主要介紹了
Scheme协议详细介绍
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄介紹
- 1.URL Scheme使用場景介紹
- 2.URL Scheme基礎介紹
- 2.1 什么是URL Scheme?
- 2.2 URL Scheme協議格式解釋
- 2.3 Scheme鏈接格式樣式
- 3.URL Scheme如何使用
- 3.1 設置Scheme
- 3.2 獲取Scheme跳轉的參數,并添加跳轉方式
- 3.3 調用方式
- 3.4 如何判斷一個Scheme是否有效
- 3.5 Scheme在短信息中注意要點
好消息
- 博客筆記大匯總【16年3月到至今】,包括Java基礎及深入知識點,Android技術博客,Python學習筆記等等,還包括平時開發中遇到的bug匯總,當然也在工作之余收集了大量的面試題,長期更新維護并且修正,持續完善……開源的文件是markdown格式的!同時也開源了生活博客,從12年起,積累共計47篇[近20萬字],轉載請注明出處,謝謝!
- 鏈接地址:https://github.com/yangchong211/YCBlogs
- 如果覺得好,可以star一下,謝謝!當然也歡迎提出建議,萬事起于忽微,量變引起質變!
關于Scheme應用案例
- https://github.com/yangchong211/YCAudioPlayer
- 可以參考該demo中的AppTool工具app,用aidl通信,還支持scheme協議跳轉,挺好玩的!
關于鏈接
- 1.技術博客匯總
- 2.開源項目匯總
- 3.生活博客匯總
- 4.喜馬拉雅音頻匯總
- 5.其他匯總
1.URL Scheme使用場景介紹
- URL Scheme使用場景,目前1,2,5使用場景很廣,有沒有一種熟悉的感覺?
- 1.通過小程序,利用Scheme協議打開原生app
- 2.H5頁面點擊錨點,根據錨點具體跳轉路徑APP端跳轉具體的頁面
- 3.APP端收到服務器端下發的PUSH通知欄消息,根據消息的點擊跳轉路徑跳轉相關頁面
- 4.APP根據URL跳轉到另外一個APP指定頁面
- 5.通過短信息中的url打開原生app
2.URL Scheme基礎介紹
2.1 什么是URL Scheme?
- android中的scheme是一種頁面內跳轉協議,是一種非常好的實現機制,通過定義自己的scheme協議,可以非常方便跳轉app中的各個頁面
2.2 URL Scheme協議格式
String urlStr="http://www.ycbjie.cn:80/yc?id=hello&name=cg"; //url = protocol + authority(host + port) + path + query //協議protocol= http //域名authority= www.ycbjie.cn:80 //頁面path= /yc //參數query= id=hello&name=cg //authority = host + port //主機host= www.ycbjie.cn //端口port= 802.3 Scheme鏈接格式樣式
- 樣式:[scheme]?/[host]/[path]?[query]
3.URL Scheme如何使用
3.1 設置Scheme
- 在AndroidManifest.xml中對標簽增加設置Scheme
3.2 獲取Scheme跳轉的參數,并添加跳轉方式
public class SchemeFirstActivity extends AppCompatActivity {@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);Uri uri = getIntent().getData();if (uri != null) {//獲取指定參數值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 調用方式
- 3.3.1 原生調用
- 3.3.2 網頁調用
- 3.3.3 短信息中調用
3.4 如何判斷一個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在短信息中注意要點
- 設置android:scheme="http"或者android:scheme="https"后,點擊短信息或者h5頁面,發現沒有跳到指定的頁面,反而打開的是網頁鏈接。
關于我的博客
- 我的個人站點: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
- 泡在網上的日子: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
總結
以上是生活随笔為你收集整理的Scheme协议详细介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 禁用Windows Defender A
- 下一篇: ios 中h5网页跳到第三方后回到项目字