如果你的App想要在手機系統中注冊一個scheme協議,方便其他App調用你的App,那么可以根據本文設置。
一、安卓平台設置
1、設置UrlSchemes
打開項目的manifest.json文件,切換到“代碼視圖”
(1)5+App項目:在manifest.json文件的"plus"->"distribute"->"google"下添加schemes節點數據如下:
"plus": { "distribute": { "google": { "schemes": [ "test" ], //...
}, //...
},
(2)uni-app項目:把上面的schemes節點數據放到manifest.json的"app-plus"->"distribute"->"android"節點下
(3)值域說明:
為字符串數組,每個字符串為一個urlscheme,使用小寫字母(不要使用特殊字符、中文),可設置多個。比如設置為test,那么其他App呼起你的app的scheme協議就是test://。
保存后提交App雲端打包生效。
2、瀏覽器中通過href啟動應用
安裝應用后,我們可以在html頁面中,通過href直接調用應用:
<a href="test://abc">test:<a>
3、uni-app中處理urlscheme啟動傳遞的參數
在App.vue的onShow里可以直接獲取
onShow: function() { var args= plus.runtime.arguments; if(args){ // 處理args參數,如直達到某新頁面等
} }
4、5+ APP中處理urlscheme啟動傳遞的參數
在其它應用中通過href調用Url Scheme傳遞過來的值,可以通過plus.runtime.arguments獲取,其值為完整的urlscheme字符串,如上面href的值啟動應用后獲取的plus.runtime.arguments值為“test://abc”。代碼示例如下:
document.addEventListener('plusready',function(){ checkArguments(); },false); // 判斷啟動方式
function checkArguments(){ console.log("plus.runtime.launcher: "+plus.runtime.launcher); var args= plus.runtime.arguments; if(args){ // 處理args參數,如直達到某新頁面等
} } // 處理從后台恢復
document.addEventListener('newintent',function(){ console.log("addEventListener: newintent"); checkArguments(); },false);
二、iOS平台設置
1、設置UrlSchemes
(1)可視化界面配置:打開項目的manifest.json文件,在“App常用其它設置”頁面“iOS設置”下的UrlSchemes中配置scheme字段:
注意:多個scheme使用','分割
2、代碼視圖配置:打開項目的manifest.json文件,切換到“代碼視圖”
(1)5+App項目:在manifest.json文件的"plus"->"distribute"->"apple"節點下添加urltypes數據
(2)uni-app項目:在manifest.json的"app-plus"->"distribute"->"ios"節點下添加urltypes數據
urltypes節點數據如下:
"plus": { "distribute": { "apple": { "urltypes": [ { "urlidentifier":"com.xxx.test", "urlschemes": [ "test" ] } ], //...
}, //...
}, //...
}, //...
值域說明:urlidentifier為標識,可自定義,格式為反向域名格式;
urlschemes為要指定的scheme值,字符串數組,使用小寫字母,可設置多個。 比如設置為test,那么其他App呼起你的app的scheme協議就是test://。
3、uni-app中處理urlscheme啟動傳遞的參數
在App.vue 中onLaunch 里獲取
onLaunch: function() { plus.globalEvent.addEventListener('newintent', (e)=>{ var args= plus.runtime.arguments; if(args){ // 處理args參數,如直達到某新頁面等
} }); }
在App.vue的onShow里獲取
onShow: function() { setTimeout(function(){ var args= plus.runtime.arguments; if(args){ // 處理args參數,如直達到某新頁面等
} },10); }