最近使用 uni-app 開發 app ,需要實作一個調起手機攝像頭掃描二維碼功能,官網API檔案給出了這樣一個demo:
// 允許從相機和相冊掃碼
uni.scanCode({
success: function (res) {
console.log('條碼型別:' + res.scanType);
console.log('條碼內容:' + res.result);
}
});
該示例確實可以調起手機攝像頭,但掃描后沒有結果,但它列印了 條碼型別 與 條碼內容 ,我們控制臺查看一下:

條碼型別具體參考 官方API檔案,寫的非常清楚,我們主要談一下條碼內容,不難發現,條碼內容的 URL 是由 res.result 產出,那么問題來了,這個 URL 可以訪問嗎?
帶著好奇心,我來到了瀏覽器地址欄…發現正常訪問,這時我就在想,只要掃碼后跳轉到這個 URL 不就可以完成了嗎!
最后,我使用了 HTML5+ 的 openURL API 完成外部鏈接的跳轉,我們先來看一下 API 介紹:
HTML5+ 官網 API 檔案:http://www.html5plus.org/doc/zh_cn/runtime.html#plus.runtime.openWeb
1. 語法及介紹
描述:呼叫第三方程式打開指定的URL
void plus.runtime.openURL( url, errorCB, identity )
2. 引數與回傳值
- url: ( String ): 必選,要打開的URL地址,字串型別,各平臺支持的地址型別存在差異,參考平臺URL支持表,
- errorCB: ( OpenErrorCallback ) :可選,打開URL地址失敗的回呼,打開指定URL地址失敗時回呼,并回傳失敗資訊,
- identity: ( String ) :可選,指定打開URL地址的程式名稱,在iOS平臺此引數被忽略,在Android平臺為程式包名,如果指定的包名不存在,則打開URL地址失敗,
回傳值:void(無)
最后完善一下前面的示例,讓其支持掃描二維碼并跳轉到相應地址:
uni.scanCode({
success: function (res) {
void plus.runtime.openWeb(res.result,function(){
// 識別失敗代碼
});
}
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/231872.html
標籤:HTML5
上一篇:ListView上拉加載下拉重繪
