微信JSSDK

21912 ワード

まずWeChat公衆プラットフォームに登録し、「公衆番号設定」の「機能設定」に「JSインターフェースセキュリティドメイン」を記入します.覚えてください
まずバックエンドの操作を見て、thinkphp 5に基づいて、
/*
          JS-SDK  
*/
    public function share(){
        $ticket = getJsapiTicket(getAccessToken(APPID,SECRET));//  token_assecc   token_access  ticket
        $noncestr = 'Wm3WZYTPz0sddenW';//     ,        16      
        $time = time();//   ,            
        $url = 'http://www.XXXXX.com/index/index/share';//     ,      ,          js-api          
        $getSignatrue = 'jsapi_ticket='.$ticket.'&noncestr='.$noncestr.'&timestamp='.$time.'&url='.$url;//      ,      
        $signature = sha1($getSignatrue);//  sha1()      ,          
        return $this->fetch('share',['time'=>$time,'noncestr'=>$noncestr,'signature'=>$signature,'appid'=>APPID]);
    }
ここでのAPPIDとSECRETは、入口ファイルで定義されている定数です.以下の通りです.
//   AppID AppSecret
define('APPID', 'wx8fc5311118f2dfb3');
define('SECRET', '97f96488de1111194dfc86f0e287a969');
getAccess Token()方法は私がパッケージした方法です.thinkphp 5の公共方法ファイルに入ればいいです.WeChatの開発を参考にして動的にaccess_を取得できます.token、とにかくWeChatの開発はtokenを取得するのに欠かせません.access.
次に先端テンプレートです.

<html>
<head>
    <title>
          
    title>
    <script src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js">script>
    
head>
<body>
<a href="javascript:void(0);" onclick="getLocation()"><h1>        h1>a><br />
<a href="javascript:void(0);" onclick="openLocation()"><h1>              h1>a><br />
<a href="javascript:void(0);" onclick="onMenuShareTimeline()"><h1>      h1>a><br />
<a href="javascript:void(0);" onclick="onMenuShareAppMessage()"><h1>     h1>a><br />
<a href="javascript:void(0);" onclick="chooseImage()"><h1>             h1>a><br />
<a href="javascript:void(0);" onclick="getNetworkType()"><h1>        h1>a><br />
<a href="javascript:void(0);" onclick="scanQRCode()"><h1>         h1>a><br />
<a href="javascript:void(0);" onclick="closeWindow()"><h1>          h1>a>
body>
<script>
    wx.config({
        debug: true, //       ,     api         alert  ,         ,   pc   ,       log  ,  pc      。
        appId: '{$appid}', //   ,        
        timestamp: '{$time}', //   ,        
        nonceStr: '{$noncestr}', //   ,        
        signature: '{$signature}',//   ,  
        jsApiList: [
            'onMenuShareTimeline',    //      
            'onMenuShareAppMessage',  //     
            'scanQRCode',             //         
            'getLocation',            //        
            'chooseImage',            //             
            'getNetworkType',         //        
            'openLocation',           //              
            'closeWindow',            //          
        ] //   ,     JS    
    });
    wx.ready(function(){
        // config        ready  ,          config        ,config           ,                   ,         ready            。             ,       ,     ready   。

        //               JS  
        // wx.checkJsApi({
        //     jsApiList: ['onMenuShareTimeline','onMenuShareAppMessage'], //      JS    ,  JS       2,
        //     success: function(res) {
        //     //          ,   api true,    false
        //     //  :{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
        //      alert(' api  ');
        //     }
        // });


        wx.onMenuShareAppMessage({
            title: 'this is title', //     
            desc: 'this is desc', //     
            link: 'http://music.163.com', //     ,                     JS      
            imgUrl: 'http://pic.616pic.com/ys_b_img/00/66/73/9KnqqgZBFe.jpg', //     
            type: 'link', //     ,music、video link,     link
            dataUrl: '', //   type music video,        ,    
            success: function () {
            //                
                alert('      ');
            },
            cancel: function (res) {
                alert('       ');
            },
            fail: function (res) {
                alert(JSON.stringify(res));
            }
        });

        wx.onMenuShareTimeline({
            title: 'this is title', //     
            link: 'http://music.163.com', //     ,                     JS      
            imgUrl: 'http://pic.616pic.com/ys_b_img/00/66/73/9KnqqgZBFe.jpg', //     
            success: function () {
                //                
                alert('       ');
            }
        });

    });

    // config         error  ,           ,          config debug    ,       res     ,  SPA         。
    wx.error(function(res){
        alert('config  ');
    });

    //      
    function onMenuShareTimeline(){
        wx.onMenuShareTimeline({
            title: 'this is title', //     
            link: 'http://music.163.com', //     ,                     JS      
            imgUrl: 'http://pic.616pic.com/ys_b_img/00/66/73/9KnqqgZBFe.jpg', //     
            success: function () {
                //                
                alert('       ');
            }
        });
        alert('onMenuShareTimeline');
    }


    //        
    function getLocation(){
        wx.getLocation({
            type: 'wgs84', //    wgs84 gps  ,        openLocation      ,   'gcj02'
            success: function (res) {
                var latitude = res.latitude; //   ,   ,   90 ~ -90
                var longitude = res.longitude; //   ,   ,   180 ~ -180。
                var speed = res.speed; //   ,  /   
                var accuracy = res.accuracy; //     
                alert(latitude);
            }
        });
    }

    //         
    function scanQRCode(){
        wx.scanQRCode({
            needResult: 0, //    0,         ,1         ,
            scanType: ["qrCode","barCode"], //              ,      
            success: function (res) {
                // var result = res.resultStr; //  needResult   1  ,       
            }
        });
    }

    //             
    function chooseImage(){
        wx.chooseImage({
            count: 1, //   9
            sizeType: ['original', 'compressed'], //             ,      
            sourceType: ['album', 'camera'], //              ,      
            success: function (res) {
                var localIds = res.localIds; //          ID  ,localId    img   src      
                alert(localIds);
            }
        });
    }

    //     
    function onMenuShareAppMessage(){
        wx.onMenuShareAppMessage({
            title: 'this is title', //     
            desc: 'this is desc', //     
            link: 'http://music.163.com', //     ,                     JS      
            imgUrl: 'http://pic.616pic.com/ys_b_img/00/66/73/9KnqqgZBFe.jpg', //     
            type: 'link', //     ,music、video link,     link
            dataUrl: '', //   type music video,        ,    
            success: function () {
            //                
                alert('      ');
            },
            cancel: function (res) {
                alert('       ');
            },
            fail: function (res) {
                alert(JSON.stringify(res));
            }
        });
    }

    //      
    function getNetworkType(){
        wx.getNetworkType({
            success: function (res) {
                var networkType = res.networkType; //       2g,3g,4g,wifi
            }
        });
    }

    //              
    function openLocation(){
        wx.openLocation({
            latitude: 0, //   ,   ,   90 ~ -90
            longitude: 0, //   ,   ,   180 ~ -180。
            name: '', //    
            address: '', //       
            scale: 1, //       ,   ,   1~28。     
            infoUrl: 'http://music.163.com' //                ,     
        });
    }

    //          
    function closeWindow(){
        wx.closeWindow();
    }
script>
html>