天天看點

小程式WebView調用JSSDK(使用掃一掃功能)采坑記錄

小程式WebView調用JSSDK(使用掃一掃功能)

      • 如何使用JSSDK
          • 一: 我開發的是小程式,哪裡來的公衆号設定?
          • 二: 引入的JS檔案(http://res.wx.qq.com/open/js/jwexin-1.4.0.js)報錯? ![在這裡插入圖檔描述](https://img-blog.csdnimg.cn/20190731190417577.png)
          • 三: 獲得簽名(權限驗證)?

最近項目仲需要在小程式中的webview網頁中調出掃一掃功能。

目前想到的思路有兩種

  • 利用JSSDK
  • 跳到小程式頁面進行掃碼,再将結果攜帶傳回(比較曲折)

這裡隻實踐了第一種,這裡記錄過程中需要記錄的點。

如何使用JSSDK

這裡是微信的官方API位址

總的來說準備要5個步驟:

  • 步驟一:綁定域名
  • 步驟二:引入JS檔案
  • 步驟三:通過config接口注入權限驗證配置
  • 步驟四:通過ready接口處理成功驗證
  • 步驟五:通過error接口處理失敗驗證

其中有幾個地方需要注意的有:::

一: 我開發的是小程式,哪裡來的公衆号設定?
小程式WebView調用JSSDK(使用掃一掃功能)采坑記錄

這裡确實需要你要有一個公衆号,并且将你程式的域名按照上面說的設定好。到這裡你可能不知道這個公衆号用來幹嘛的,之後會講到。

二: 引入的JS檔案(http://res.wx.qq.com/open/js/jwexin-1.4.0.js)報錯?
小程式WebView調用JSSDK(使用掃一掃功能)采坑記錄

比較粗心,沒有注意到原來程式沒有正常加載該js,又沒有什麼提示。我看到程式沒有按我的預期執行代碼的時候,卡了一段時間在找原因。最後才發現是因為這段js沒有正常加載。原因可能是你的http/https環境問題,如果是https的環境可以把那個js檔案的位址也改成https,例如:

https://res.wx.qq.com/open/js/jwexin-1.4.0.js

我記得有個寫發好像是不需要http字首的,這樣就會自适應環境,我還沒專門驗證過:

: //res.wx.qq.com/open/js/jwexin-1.4.0.js(冒号跟斜杠号有空格記得去掉)

三: 獲得簽名(權限驗證)?
小程式WebView調用JSSDK(使用掃一掃功能)采坑記錄

這邊是背景的工作,需要注意的是url的位址,要在公衆号中設定成為JS接口安全域名,并且APPID是傳回公衆号的APPID,而不是小程式的(問題一的答案:公衆号的作用)。

PS:::如果你的程式發現簽名正确缺發現提示無效路徑(Invalid URL)的話就要注意了,很可能是你的APPID不是公衆号,或者是公衆号但是還沒設定成JS接口安全域名

這裡附上一個簽名校驗工具:簽名校驗工具

如果過程中出現錯誤,要記得去微信的文檔中找到該種錯誤的資訊,能夠幫你盡快找到原因。