Android平台、iOS平台設置UrlSchemes,實現被第三方應用調用


  如果你的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); }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM