日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Scheme协议详细介绍

發(fā)布時(shí)間:2023/12/18 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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= 80

2.3 Scheme鏈接格式樣式

  • 樣式:[scheme]?/[host]/[path]?[query]

3.URL Scheme如何使用

3.1 設(shè)置Scheme

  • 在AndroidManifest.xml中對標(biāo)簽增加設(shè)置Scheme
<activityandroid:name=".ui.main.ui.activity.SchemeFirstActivity"android:screenOrientation="portrait"><!--Android 接收外部跳轉(zhuǎn)過濾器--><!--要想在別的App上能成功調(diào)起App,必須添加intent過濾器--><intent-filter><!-- 協(xié)議部分配置 ,注意需要跟web配置相同--><!--協(xié)議部分,隨便設(shè)置 yc://ycbjie:8888/from?type=yangchong --><data android:scheme="yc"android:host="ycbjie"android:path="/from"android:port="8888"/><!--下面這幾行也必須得設(shè)置--><category android:name="android.intent.category.DEFAULT" /><category android:name="android.intent.category.BROWSABLE" /><action android:name="android.intent.action.VIEW" /></intent-filter> </activity>

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)用
Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse("yc://ycbjie:8888/from?type=yangchong")); startActivity(intent);
  • 3.3.2 網(wǎng)頁調(diào)用
<a href="yc://ycbjie:8888/from?type=yangchong">打開叮咚app</a>
  • 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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。