• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當(dāng)前位置:雨林木風(fēng)下載站 > 應(yīng)用軟件教程 > 詳細(xì)頁面

        微信小程序如何使用webview調(diào)用微信掃一掃的技巧

        微信小程序如何使用webview調(diào)用微信掃一掃的技巧

        更新時(shí)間:2025-09-20 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

        導(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)行配置
        我這里主要說下怎么在webview(html)里面使用高級(jí)功能。
        首先:在不獲取jssdk配置時(shí),我們只能使用跳轉(zhuǎn)等一些基礎(chǔ)函數(shù)。但是涉及到要在webview(我們的html)里面直接調(diào)用微信掃一掃、打開相冊(cè)等高級(jí)功能時(shí)就需要對(duì)這個(gè)html文件進(jìn)行注冊(cè)。

        前端邏輯:

        具體流程是:

        ①html頁面初始化時(shí)向我們的后臺(tái)請(qǐng)求獲取基本配置數(shù)據(jù),參數(shù)就是當(dāng)前頁面url路徑,包括帶參部分。
        ②獲取到數(shù)據(jù)調(diào)用wx.config方法,對(duì)這個(gè)html頁面注冊(cè)(注意前提是html加載了js才可以調(diào)用<script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.3.2.js"></script>)
        ③config方法成功后,就可以愉快的使用一些高級(jí)功能了。

        具體代碼展示

        <!-- 這個(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ì)算得到配置信息,并存起來,然后返回給前端
        ②頁面不是第一次請(qǐng)求,不是大于兩小時(shí),直接找到對(duì)應(yīng)頁面的配置信息返回給用戶。大于2小時(shí),如果大于兩小時(shí)再次調(diào)用微信接口計(jì)算配置信息,返回用戶,更新存儲(chǔ)的數(shù)據(jù)。(這里我用的java類存在內(nèi)存里面的,改成數(shù)據(jù)庫儲(chǔ)存可以相應(yīng)減輕服務(wù)端內(nèi)存)
        ③為什么要判斷是否超過兩小時(shí)在從新計(jì)算呢。因?yàn)榈谝豁撁嬉话銜?huì)刷新比較頻繁,其次微信的獲取jssdk配置接口有使用次數(shù)限制,每天只能獲取多少次,所以我們不能每次請(qǐng)求過來都去計(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ā) 微信掃描登陸

        微信開發(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)收藏一下本站!

        本類教程下載

        系統(tǒng)下載排行

        主站蜘蛛池模板: 亚洲欧美自偷自拍另类视| 国产v片免费播放| 亚洲A∨无码无在线观看| 亚洲午夜无码毛片av久久京东热| 永久免费AV无码网站国产| 久久久久久AV无码免费网站 | 亚洲精品无码久久久久久| 免费无码精品黄AV电影| 国产成人aaa在线视频免费观看 | 亚洲免费网站观看视频| 亚洲酒色1314狠狠做| 一区二区视频免费观看| 国产免费私拍一区二区三区| 一区二区三区在线免费| 亚洲精品无码专区2| 国产免费黄色无码视频 | 在线观看免费视频资源| 亚洲日本香蕉视频观看视频| 亚洲一级毛片视频| 久久免费观看视频| 亚洲精品一品区二品区三品区| 久久er国产精品免费观看2| 精品亚洲国产成AV人片传媒| 一区在线免费观看| 亚洲人成网77777亚洲色| 69国产精品视频免费| 亚洲国产欧洲综合997久久| 免费A级毛片av无码| 国产亚洲精品看片在线观看 | 亚洲伊人久久大香线蕉AV| 免费a级毛片高清视频不卡| 日韩成人免费视频| 国产成人精品免费午夜app| 亚洲一级特黄特黄的大片| 免费a级毛片大学生免费观看| 亚洲第一视频网站| 国产福利在线免费| 男女污污污超污视频免费在线看 | 亚洲色欲久久久综合网| 亚洲免费视频网站| 亚洲成在人线aⅴ免费毛片|