做app開發,有時需要跳轉打開外部的app應用,來促成引流或者分享等,這個時候就需要通過scheme跳轉協議來完成。
使用scheme跳轉外部app,就需要配置對應app的scheme,那這個scheme怎么來呢?
1、網上搜索常用的app的scheme
2、自己通過一些方法來獲取
獲取方法:電腦下載愛思助手
1、打開愛思助手,下載對應的app
2、打開該app所在文件夾,把后綴.ipa變成.zip后解壓
3、找到解壓后文件夾里面的Info.plist文件,打開,你會看到很多scheme,然后自行判斷測試吧。。。
4、每個Info.plist文件里面的數據都有區別,不一定能找到可以用的,愛思助手下載獲取的也可能跟你手機上那個匹配不到
uniapp中,跳轉外部app的方法如下:
跳轉路徑為app對應的scheme加指定鏈接,指定鏈接為可選,表示打開app中的某個頁面,可能需要過濾掉鏈接的https://再拼接到scheme后面
plus.runtime.openURL("跳轉路徑(scheme加指定鏈接)", function(res){ uni.showModal({ content: '本機未檢測到該app客戶端,是否打開瀏覽器訪問?', success: function(res2) { if (res2.confirm) { let reg = /^((https|http|ftp|rtsp|mms)?:\/\/)[^\s]+/; if(reg.test(url)){ plus.runtime.openWeb(url); }else{ plus.runtime.openWeb("https://baidu.com/s?wd="+url); } } } }); });
跳轉外部app除了與該app緊密聯系的單位,很難保證完全通過scheme跳轉到該app各個頁面,因為網上找的或者自己獲取的scheme不穩定,或者該app出現bug,導致無法跳到我們想要的頁面。
這個時候,可以考慮直接打開某個地址,而不是先跳轉該app,通過網頁再進行下一步操作。
直接打開該鏈接,則不需要在鏈接前加對應app的scheme配置
openWeb:通過外部瀏覽器應用打開鏈接
openURL:通過內置webview打開鏈接
if (iconType != '淘寶') { let reg = /^((https|http|ftp|rtsp|mms)?:\/\/)[^\s]+/; if (reg.test(url)) { if(iconType != '抖音'){ plus.runtime.openWeb(url); }else{ plus.runtime.openURL(url); } } else { plus.runtime.openWeb('https://baidu.com/s?wd=' + url); } return; }