<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        微信小程序webview實現長按點擊識別二維碼功能示例

        來源:懂視網 責編:小采 時間:2020-11-27 22:01:38
        文檔

        微信小程序webview實現長按點擊識別二維碼功能示例

        微信小程序webview實現長按點擊識別二維碼功能示例:本文實例講述了微信小程序webview實現長按點擊識別二維碼功能。分享給大家供大家參考,具體如下: 場景:微信小程序,使用webview控件。需求:點擊圖片后長按圖片出現識別二維碼 1、JS代碼: <script src=http://res.wx.qq.com/
        推薦度:
        導讀微信小程序webview實現長按點擊識別二維碼功能示例:本文實例講述了微信小程序webview實現長按點擊識別二維碼功能。分享給大家供大家參考,具體如下: 場景:微信小程序,使用webview控件。需求:點擊圖片后長按圖片出現識別二維碼 1、JS代碼: <script src=http://res.wx.qq.com/

        本文實例講述了微信小程序webview實現長按點擊識別二維碼功能。分享給大家供大家參考,具體如下:

        場景:微信小程序,使用webview控件。需求:點擊圖片后長按圖片出現“識別二維碼”

        1、JS代碼:

        <script src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
        <script type="text/javascript">
        $(function(){
         var returnData = false;
         $.ajax({
         type : "get",
         url : 'http://app.ka.com/m/config.php',
         data : [],
         async : false,
         success: function(data,textStatus,jqXHR){
         returnData = data;
         //console.log(returnData);
         }
         });//end ajax
         var returnData = eval('(' + returnData + ')');
         console.log(returnData);
         var appId = returnData.appId;
         var timestamp = returnData.timestamp;
         var nonceStr = returnData.nonceStr;
         var signature = returnData.signature;
         wx.config({
         debug: true, //調試階段建議開啟
         appId: appId,
         timestamp: timestamp,
         nonceStr: nonceStr,
         signature: signature,
         jsApiList: [
         /*
         * 所有要調用的 API 都要加到這個列表中
         * 這里以圖像接口為例
         */
         "chooseImage",
         "previewImage",
         "uploadImage",
         "downloadImage",
         "scanQRCode"
         ]
         });
         wx.ready(function() {
         //alert(3);
         wx.checkJsApi({
         jsApiList : ['scanQRCode','previewImage'],
         success : function(res) {
         }
         });
         $("img").click(function(){
         var url = "http://app.ka.com/"+$(this).attr("src");
         wx.previewImage({
         current: url, // 當前顯示圖片的http鏈接
         urls: [url] // 需要預覽的圖片http鏈接列表
         });
         });
         });
         wx.error(function(res){
         // config信息驗證失敗會執行error函數,如簽名過期導致驗證失敗,具體錯誤信息可以打開config的debug模式查看,也可以在返回的res參數中查看,對于SPA可以在這里更新簽名。
         console.log(res);
         });
        });
        </script>
        
        

        2、服務端代碼(獲取config配置信息):

        <?php
        date_default_timezone_set("Asia/Shanghai");
        $jssdk = new Jssdk();
        $signPackage = $jssdk->getSignPackage();
        echo json_encode($signPackage);exit;
        class Jssdk
        {
         private $_CI;
         private $appId;
         private $appSecret;
         public function __construct($appId='wx666666', $appSecret='ee32') {
         $this->appId = $appId;
         $this->appSecret = $appSecret;
         }
         public function getSignPackage() {
         $jsapiTicket = $this->getJsApiTicket();
         // 注意 URL 一定要動態獲取,不能 hardcode.
         $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
         $url = "$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
         $timestamp = time();
         $nonceStr = $this->createNonceStr();
         // 這里參數的順序要按照 key 值 ASCII 碼升序排序
         $string = "jsapi_ticket=$jsapiTicket&noncestr=$nonceStr×tamp=$timestamp&url=$url";
         $signature = sha1($string);
         $signPackage = array(
         "appId" => $this->appId,
         "nonceStr" => $nonceStr,
         "timestamp" => $timestamp,
         "url" => $url,
         "signature" => $signature,
         "rawString" => $string,
         'jsapiTicket' =>$jsapiTicket,
         );
         return $signPackage;
         }
         private function createNonceStr($length = 16) {
         $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
         $str = "";
         for ($i = 0; $i < $length; $i++) {
         $str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
         }
         return $str;
         }
         private function getJsApiTicket() {
         // jsapi_ticket 應該全局存儲與更新,以下代碼以寫入到文件中做示例
         $data = $this->get_php_file("jsapi_ticket");
         //echo $data['expire_time'].'------'.time();
         //print_r($data);exit;
         if (!isset($data['jsapi_ticket']) || (isset($data['expire_time']) && $data['expire_time'] < time())) {
         //echo 1111;
         $accessToken = $this->getAccessToken();
         // 如果是企業號用以下 URL 獲取 ticket
         // $url = "https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket?access_token=$accessToken";
         $url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi&access_token=$accessToken";
         //echo $url;
         $res = json_decode($this->httpGet($url), true);
         $ticket = isset($res['ticket']) ? $res['ticket'] : false;
         if ($ticket) {
         $data['expire_time'] = time() + 7160;
         $data['token_value'] = $ticket;
         $this->set_php_file("jsapi_ticket", $data);
         }
         } else {
         //echo 22222;
         $ticket = $data['jsapi_ticket'];
         }
         return $ticket;
         }
         public function getAccessToken() {
         // access_token 應該全局存儲與更新,以下代碼以寫入到文件中做示例
         $data = $this->get_php_file("access_token");
         if (!isset($data['access_token']) || (isset($data['expire_time']) && $data['expire_time'] < time())) {
         // 如果是企業號用以下URL獲取access_token
         // $url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$this->appId&corpsecret=$this->appSecret";
         $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$this->appId&secret=$this->appSecret";
         $res = json_decode($this->httpGet($url));
         //var_dump($res);exit;
         $access_token = $res->access_token;
         if ($access_token) {
         $data['expire_time'] = time() + 7160;
         $data['token_value'] = $access_token;
         $this->set_php_file("access_token", $data);
         }
         } else {
         $access_token = $data['access_token'];
         }
         return $access_token;
         }
         private function httpGet($url) {
         $curl = curl_init();
         curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
         curl_setopt($curl, CURLOPT_TIMEOUT, 500);
         // 為保證第三方服務器與微信服務器之間數據傳輸的安全性,所有微信接口采用https方式調用,必須使用下面2行代碼打開ssl安全校驗。
         // 如果在部署過程中代碼在此處驗證失敗,請到 http://curl.haxx.se/ca/cacert.pem 下載新的證書判別文件。
         curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
         curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
         curl_setopt($curl, CURLOPT_URL, $url);
         $res = curl_exec($curl);
         curl_close($curl);
         return $res;
         }
         private function get_php_file($token_name) {
         if(file_exists($token_name)) return false;
         return json_decode(file_get_contents($token_name), true);
         }
         private function set_php_file($token_name, $data) {
         $fp = fopen($token_name, "w");
         fwrite($fp, "<?php exit();?>" . json_encode($data));
         fclose($fp);
         }
        }
        
        

        這里再為大家推薦一款功能相似的在線工具供大家參考:

        在線二維碼解碼識別工具:
        http://tools.jb51.net/transcoding/trans_qrcode

        希望本文所述對大家微信小程序開發有所幫助。

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        微信小程序webview實現長按點擊識別二維碼功能示例

        微信小程序webview實現長按點擊識別二維碼功能示例:本文實例講述了微信小程序webview實現長按點擊識別二維碼功能。分享給大家供大家參考,具體如下: 場景:微信小程序,使用webview控件。需求:點擊圖片后長按圖片出現識別二維碼 1、JS代碼: <script src=http://res.wx.qq.com/
        推薦度:
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 国产亚洲综合视频| 亚洲国产精品精华液| 久久99精品免费一区二区| 一本久久综合亚洲鲁鲁五月天| 亚洲伊人久久大香线蕉AV| 97人妻无码一区二区精品免费| 亚洲综合精品一二三区在线| 91免费福利精品国产| 亚洲色图古典武侠| 亚洲免费网站在线观看| 狠狠色伊人亚洲综合网站色| 最近的中文字幕大全免费版| 亚洲国产成人AV在线播放| 免费在线观看视频a| 免费国产草莓视频在线观看黄| 亚洲国产精品综合久久一线 | 亚洲影视自拍揄拍愉拍| 日本免费网址大全在线观看 | 九九久久国产精品免费热6| 亚洲精品国精品久久99热| 91av免费在线视频| 久久精品国产亚洲AV麻豆~| 99在线热视频只有精品免费| 亚洲AV成人噜噜无码网站| 免费a级毛片无码a∨性按摩| 在线观看免费视频一区| 亚洲国产高清视频在线观看| 搡女人免费视频大全| 欧洲乱码伦视频免费国产| 亚洲精品线在线观看| 扒开双腿猛进入爽爽免费视频 | 巨胸喷奶水www永久免费| 亚洲第一区视频在线观看| 拨牐拨牐x8免费| 你是我的城池营垒免费看| 国产日本亚洲一区二区三区| 亚洲第一区在线观看| 免费在线观看h片| 免费无毒a网站在线观看| 亚洲av无码不卡一区二区三区| 日韩欧美一区二区三区免费观看|