uni-app開發經驗分享十三:實現手機掃描二維碼並跳轉全過程


最近使用 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. 參數與返回值

  1. url: ( String ): 必選,要打開的URL地址,字符串類型,各平台支持的地址類型存在差異,參考平台URL支持表。
  2. errorCB: ( OpenErrorCallback ) :可選,打開URL地址失敗的回調,打開指定URL地址失敗時回調,並返回失敗信息。
  3. identity: ( String ) :可選,指定打開URL地址的程序名稱,在iOS平台此參數被忽略,在Android平台為程序包名,如果指定的包名不存在,則打開URL地址失敗。

返回值:void(無)


最后完善一下前面的示例,讓其支持掃描二維碼並跳轉到相應地址:

uni.scanCode({
	success: function (res) {
		void plus.runtime.openWeb(res.result,function(){
			// 識別失敗代碼
		});
	 }
});

 


免責聲明!

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



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