這篇文章主要介紹微信小程序怎樣使用webview調(diào)用微信掃一掃的功能,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!
成都創(chuàng)新互聯(lián)公司是創(chuàng)新、創(chuàng)意、研發(fā)型一體的綜合型網(wǎng)站建設(shè)公司,自成立以來公司不斷探索創(chuàng)新,始終堅持為客戶提供滿意周到的服務(wù),在本地打下了良好的口碑,在過去的10余年時間我們累計服務(wù)了上千家以及全國政企客戶,如成都水處理設(shè)備等企業(yè)單位,完善的項目管理流程,嚴(yán)格把控項目進度與質(zhì)量監(jiān)控加上過硬的技術(shù)實力獲得客戶的一致稱揚。
我們在做web開發(fā)時是按照web開發(fā)流程進行的,當(dāng)需要快速將web項目移植到小程序里面,就需要用到小程序提供的webview組件。關(guān)于它的好處以及開發(fā)平臺配置大家可以按照微信公眾平臺進行配置
我這里主要說下怎么在webview(html)里面使用高級功能。
首先:在不獲取jssdk配置時,我們只能使用跳轉(zhuǎn)等一些基礎(chǔ)函數(shù)。但是涉及到要在webview(我們的html)里面直接調(diào)用微信掃一掃、打開相冊等高級功能時就需要對這個html文件進行注冊。
前端邏輯:
①html頁面初始化時向我們的后臺請求獲取基本配置數(shù)據(jù),參數(shù)就是當(dāng)前頁面url路徑,包括帶參部分。
②獲取到數(shù)據(jù)調(diào)用wx.config方法,對這個html頁面注冊(注意前提是html加載了js才可以調(diào)用)
③config方法成功后,就可以愉快的使用一些高級功能了。
后臺JAVA邏輯:
①頁面第一次請求獲取配置信息,后臺使用微信接口計算得到配置信息,并存起來,然后返回給前端
②頁面不是第一次請求,不是大于兩小時,直接找到對應(yīng)頁面的配置信息返回給用戶。大于2小時,如果大于兩小時再次調(diào)用微信接口計算配置信息,返回用戶,更新存儲的數(shù)據(jù)。(這里我用的java類存在內(nèi)存里面的,改成數(shù)據(jù)庫儲存可以相應(yīng)減輕服務(wù)端內(nèi)存)
③為什么要判斷是否超過兩小時在從新計算呢。因為第一頁面一般會刷新比較頻繁,其次微信的獲取jssdk配置接口有使用次數(shù)限制,每天只能獲取多少次,所以我們不能每次請求過來都去計算。
/** * webview——JSSDK使用配置信息獲取 */ @ResponseBody @RequestMapping(value = "User/GetJsSdk_Config") public MapGetJsSdk_Config(@RequestBody HashMap data, HttpSession session) throws KeyStoreException, NoSuchAlgorithmException, CertificateException, Exception { Map resultmap = new HashMap (); User user = (User) session.getAttribute("user"); if (user == null) { resultmap.put("state", false); resultmap.put("message", "未登錄或登錄超時"); return resultmap; } if (data.get("url") == null) { resultmap.put("state", false); resultmap.put("message", "參數(shù)不全"); return resultmap; } String url = data.get("url").toString(); Map one_jassdkcofig = AllJssdkConfig.TheconfigBeoVerdue(url); if (one_jassdkcofig != null)// 如果當(dāng)前頁面配置信息還未過期 { resultmap.put("sate", true); resultmap.put("message", ""); resultmap.put("beta", one_jassdkcofig.get("beta")); resultmap.put("debug", one_jassdkcofig.get("debug"));// 是否開啟調(diào)試 resultmap.put("appId", one_jassdkcofig.get("appId"));// 公眾號的appid resultmap.put("timestamp", one_jassdkcofig.get("timestamp"));// 時間搓、秒 resultmap.put("nonceStr", one_jassdkcofig.get("nonceStr"));// 隨即字符 resultmap.put("signature", one_jassdkcofig.get("signature"));// sha1加密碼 resultmap.put("jsApiList", "所有需要用到的接口");// 需要使用的接口 System.out.println("找到配置!不用計算"); System.out.println(resultmap); return resultmap; } String token = user_wxAPI.GetInstance().get_jssdk_accesstoken(); String ticket = user_wxAPI.GetInstance().get_jssdk_ticket(token); resultmap = user_wxAPI.GetInstance().get_jssdk_config(ticket,url); if (resultmap!=null) { resultmap.put("sate", true); resultmap.put("message", ""); AllJssdkConfig.SaveOneConfig(url, resultmap);// 更新jasdk數(shù)組配置 System.out.println("沒有找到配置!重新計算"); System.out.println(resultmap); return resultmap; } else { resultmap=new HashMap (); resultmap.put("sate", false); resultmap.put("message", "后臺獲取jssdk_ticket出錯"); return resultmap; } }
以上是“微信小程序怎樣使用webview調(diào)用微信掃一掃的功能”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!