導(dǎo)讀微信小程序,簡(jiǎn)稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應(yīng)用,它實(shí)現(xiàn)了應(yīng)用“觸手可及”的夢(mèng)想,用戶掃一掃或搜一下即可打開應(yīng)用。小程序是一種不用下載就能使用的應(yīng)用,也是一... 微信小程序,簡(jiǎn)稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應(yīng)用,它實(shí)現(xiàn)了應(yīng)用“觸手可及”的夢(mèng)想,用戶掃一掃或搜一下即可打開應(yīng)用。小程序是一種不用下載就能使用的應(yīng)用,也是一項(xiàng)門檻非常高的創(chuàng)新,經(jīng)過將近兩年的發(fā)展,已經(jīng)構(gòu)造了新的小程序開發(fā)環(huán)境和開發(fā)者生態(tài)。 本篇文章給大家?guī)淼膬?nèi)容是關(guān)于微信小程序如何使用webview調(diào)用微信掃一掃的功能,有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對(duì)你有所幫助。我們?cè)谧鰓eb開發(fā)時(shí)是按照web開發(fā)流程進(jìn)行的,當(dāng)需要快速將web項(xiàng)目移植到小程序里面,就需要用到小程序提供的webview組件。關(guān)于它的好處以及開發(fā)平臺(tái)配置大家可以按照微信公眾平臺(tái)進(jìn)行配置 前端邏輯: 具體流程是: ①html頁面初始化時(shí)向我們的后臺(tái)請(qǐng)求獲取基本配置數(shù)據(jù),參數(shù)就是當(dāng)前頁面url路徑,包括帶參部分。 具體代碼展示<!-- 這個(gè)地方是在加載配置,實(shí)際頁面中是頁面渲渲染時(shí)通過“java后臺(tái)jssdkconfig”接口從我們的后臺(tái)獲取參數(shù),然后賦值給下面對(duì)應(yīng)的字段”--> <script type="text/javascript"> wx.config({ debug: true,//是否開啟調(diào)試 appId: 'wx97d97ea93ef96606',//小程序appid timestamp: '1534925207',//時(shí)間搓,單位秒 nonceStr: 'HT5Ab5moviaVdp7XegNnRBivrETgPmu2',//隨機(jī)字符串 signature: 'd73acd8eec5a4c1a6a86c7e0517bedff78e72fd9',//簽名md5 jsApiList: ['startRecord','stopRecord','playVoice','uploadVoice','downloadVoice','onVoiceRecordEnd','translateVoice','downloadVoice', 'onMenuShareTimeline','onMenuShareAppMessage','scanQRCode','getLocation','chooseImage','getLocalImgData','uploadImage']//當(dāng)前html需要用到的接口 }); </script> 后臺(tái)JAVA邏輯: 處理流程: ①頁面第一次請(qǐng)求獲取配置信息,后臺(tái)使用微信接口計(jì)算得到配置信息,并存起來,然后返回給前端 后臺(tái)代碼:/** * webview——JSSDK使用配置信息獲取 */ @ResponseBody @RequestMapping(value = "User/GetJsSdk_Config") public Map<String, Object> GetJsSdk_Config(@RequestBody HashMap<String, Object> data, HttpSession session) throws KeyStoreException, NoSuchAlgorithmException, CertificateException, Exception { Map<String, Object> resultmap = new HashMap<String, Object>(); User user = (User) session.getAttribute("user"); if (user == null) { resultmap.put("state", false); resultmap.put("message", "未登錄或登錄超時(shí)"); return resultmap; } if (data.get("url") == null) { resultmap.put("state", false); resultmap.put("message", "參數(shù)不全"); return resultmap; } String url = data.get("url").toString(); Map<String, Object> 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"));// 公眾號(hào)的appid resultmap.put("timestamp", one_jassdkcofig.get("timestamp"));// 時(shí)間搓、秒 resultmap.put("nonceStr", one_jassdkcofig.get("nonceStr"));// 隨即字符 resultmap.put("signature", one_jassdkcofig.get("signature"));// sha1加密碼 resultmap.put("jsApiList", "所有需要用到的接口");// 需要使用的接口 System.out.println("找到配置!不用計(jì)算"); 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("沒有找到配置!重新計(jì)算"); System.out.println(resultmap); return resultmap; } else { resultmap=new HashMap<String, Object>(); resultmap.put("sate", false); resultmap.put("message", "后臺(tái)獲取jssdk_ticket出錯(cuò)"); return resultmap; } } 相關(guān)推薦: 微信開發(fā) - 微信v3掃碼支付二返回的notify.php怎么接收回調(diào)的值 分享微信掃碼支付開發(fā)遇到問題及解決方案-附Ecshop微信支付插件_php實(shí)例 以上就是微信小程序如何使用webview調(diào)用微信掃一掃的功能的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章! 小程序是一種不需要下載安裝即可使用的應(yīng)用,它實(shí)現(xiàn)了應(yīng)用“觸手可及”的夢(mèng)想,用戶掃一掃或者搜一下即可打開應(yīng)用。 |
溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!