最近在項目開發中,遇到需要提供呼氣APP協議的需求,很不想拆穿自己的lower,當時想了很久什麼是呼氣APP協議,百度下,最後,哎系,就是scheme,總結下,避免下次繼續懵逼。
作用
客戶端應用可以向操作系統註冊一個 URL scheme,該 scheme 用於從瀏覽器或其他應用中啓動本應用。通過指定的 URL 字段,可以讓應用在被調起後直接打開某些特定頁面,比如車輛詳情頁、訂單詳情頁、消息通知頁、促銷廣告頁等等。也可以執行某些指定動作,如訂單支付等。也可以在應用內通過 html 頁來直接調用顯示 app 內的某個頁面。
如何實現:
<!--用來測試協議的配置-->
<activity
android:name=".ui.mywrite.JumpActivity"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:scheme="xxxxx"
android:host="hhhh">
</data>
</intent-filter>
</activity>
其中
<category android:name="android.intent.category.BROWSABLE"/>
上面代碼爲html提供了跳轉支持,如果不寫這句話,是html調用不起我們的app的。
下面爲html打開上圖的應用界面代碼,代碼如下:
window.location.href='xxxxx://hhhh';
當然這個地址也需要遵循一定的規則,規則如下:
客戶端自定義的 URL 作爲從一個應用調用另一個的基礎,遵循 RFC 1808 (Relative Uniform Resource Locators) 標準。這跟我們常見的網頁內容 URL 格式一樣。
我們在實際使用中以需要以下的方法:
1)獲得Scheme名稱
this.getIntent().getScheme();//獲得Scheme名稱
2)獲得URl全部路徑
this.getIntent().getDataString();//獲得Uri全部路徑
3)APP調用呼氣協議
Intent intent = new Intent(Intent.ACTION_VIEW,"xxxxx://hhhh");
this.startActivityForResult(intent, 0);
希望本片文章對你有用