你鹅 發表於 2019-6-24 16:08:00

UNI-APP开发微信公众号(H5)JSSDK使用

<p>最近在使用开发项目,需要在公众号上运行。需要实现定位获取经纬度的功能。</p>
<p>使用的模块方式引用微信 js-sdk</p>
<p>引用方法:https://ask.dcloud.net.cn/article/35380</p>
<p>github:https://github.com/zhetengbiji/jweixin-module</p>
<ol>
<li>
<h3>NPM安装方式(不会用NPM就不要用这种方式)<br>&nbsp;</h3>
<div class="cnblogs_code">
<pre>npm install jweixin-module --save</pre>
</div>
<p>&nbsp;</p>
</li>
<li>
<h3>下载使用方式</h3>
</li>
</ol>
<p style="margin-left: 30px">下载地址:https://unpkg.com/jweixin-module@1.4.1/out/index.js</p>
<p style="margin-left: 30px">&nbsp;</p>
<p style="margin-left: 30px">使用</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">var</span> jweixin = require('jweixin-module'<span style="color: rgba(0, 0, 0, 1)">)
jweixin.ready(</span><span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(){
    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> TODO</span>
});</pre>
</div>
<p>两个地方,对使用方法都像上面说的那样简单。但是真要是用起来,就悲剧了。特别是新手。</p>
<p>DCloud官网的论坛,有分享的例子http://ask.dcloud.net.cn/article/36007。</p>
<p>&nbsp;</p>
<p>我这里做个定位接口例子。</p>
<p>首先要看微信的文档。清楚大致的流程。https://mp.weixin.qq.com/wiki?t=resource/res_main&amp;id=mp1421141115</p>
<p>&nbsp;</p>
<p><code>1、common</code>目录,创建文件,名称是<code>wechat.js。内容如下:</code></p>
<div class="cnblogs_code"><img id="code_img_closed_2b712cf6-3782-4823-b172-074b3302e6b5" class="code_img_closed lazyload" alt="" data-src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif"><img id="code_img_opened_2b712cf6-3782-4823-b172-074b3302e6b5" class="code_img_opened lazyload" style="display: none" alt="" data-src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif">
<div id="cnblogs_code_open_2b712cf6-3782-4823-b172-074b3302e6b5" class="cnblogs_code_hide">
<pre><span style="color: rgba(0, 128, 128, 1)">1</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> import request from './request'; //笔者自己封装的网络请求类,也可以直接使用uni.request</span>
<span style="color: rgba(0, 128, 128, 1)">2</span> <span style="color: rgba(0, 0, 0, 1)">import {
</span><span style="color: rgba(0, 128, 128, 1)">3</span> <span style="color: rgba(0, 0, 0, 1)">    post
</span><span style="color: rgba(0, 128, 128, 1)">4</span> } from './wxRequest'<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">5</span> <span style="color: rgba(0, 0, 255, 1)">var</span> jweixin = require('jweixin-module'<span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)">6</span>
<span style="color: rgba(0, 128, 128, 1)">7</span> export <span style="color: rgba(0, 0, 255, 1)">default</span><span style="color: rgba(0, 0, 0, 1)"> {
</span><span style="color: rgba(0, 128, 128, 1)">8</span>   <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">判断是否在微信中</span>
<span style="color: rgba(0, 128, 128, 1)">9</span>   isWechat: <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">() {
</span><span style="color: rgba(0, 128, 128, 1)"> 10</span>         <span style="color: rgba(0, 0, 255, 1)">var</span> ua =<span style="color: rgba(0, 0, 0, 1)"> window.navigator.userAgent.toLowerCase();
</span><span style="color: rgba(0, 128, 128, 1)"> 11</span>         <span style="color: rgba(0, 0, 255, 1)">if</span> (ua.match(/micromessenger/i) == 'micromessenger'<span style="color: rgba(0, 0, 0, 1)">) {
</span><span style="color: rgba(0, 128, 128, 1)"> 12</span>             <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> console.log('是微信客户端')</span>
<span style="color: rgba(0, 128, 128, 1)"> 13</span>             <span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 14</span>         } <span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)"> {
</span><span style="color: rgba(0, 128, 128, 1)"> 15</span>             <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> console.log('不是微信客户端')</span>
<span style="color: rgba(0, 128, 128, 1)"> 16</span>             <span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 17</span> <span style="color: rgba(0, 0, 0, 1)">      }
</span><span style="color: rgba(0, 128, 128, 1)"> 18</span> <span style="color: rgba(0, 0, 0, 1)">    },
</span><span style="color: rgba(0, 128, 128, 1)"> 19</span>   <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">初始化sdk配置</span>
<span style="color: rgba(0, 128, 128, 1)"> 20</span>   initJssdkShare: <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(callback, url) {
</span><span style="color: rgba(0, 128, 128, 1)"> 21</span>         <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">服务端进行签名 ,可使用uni.request替换。 签名算法请看文档</span>
<span style="color: rgba(0, 128, 128, 1)"> 22</span> <span style="color: rgba(0, 0, 0, 1)">      post(
</span><span style="color: rgba(0, 128, 128, 1)"> 23</span>             'https://fbyc.microchainsoft.cn/index/wechat/getSignPackage'<span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(0, 128, 128, 1)"> 24</span> <span style="color: rgba(0, 0, 0, 1)">            {
</span><span style="color: rgba(0, 128, 128, 1)"> 25</span> <span style="color: rgba(0, 0, 0, 1)">                url: url
</span><span style="color: rgba(0, 128, 128, 1)"> 26</span> <span style="color: rgba(0, 0, 0, 1)">            },
</span><span style="color: rgba(0, 128, 128, 1)"> 27</span>             <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(res) {
</span><span style="color: rgba(0, 128, 128, 1)"> 28</span>               <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> console.log(res)</span>
<span style="color: rgba(0, 128, 128, 1)"> 29</span>               <span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> (res.data) {
</span><span style="color: rgba(0, 128, 128, 1)"> 30</span> <span style="color: rgba(0, 0, 0, 1)">                  jweixin.config({
</span><span style="color: rgba(0, 128, 128, 1)"> 31</span>                         debug: <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(0, 128, 128, 1)"> 32</span> <span style="color: rgba(0, 0, 0, 1)">                        appId: res.data.appId,
</span><span style="color: rgba(0, 128, 128, 1)"> 33</span> <span style="color: rgba(0, 0, 0, 1)">                        timestamp: res.data.timestamp,
</span><span style="color: rgba(0, 128, 128, 1)"> 34</span> <span style="color: rgba(0, 0, 0, 1)">                        nonceStr: res.data.nonceStr,
</span><span style="color: rgba(0, 128, 128, 1)"> 35</span> <span style="color: rgba(0, 0, 0, 1)">                        signature: res.data.signature,
</span><span style="color: rgba(0, 128, 128, 1)"> 36</span> <span style="color: rgba(0, 0, 0, 1)">                        jsApiList: [
</span><span style="color: rgba(0, 128, 128, 1)"> 37</span>                           'checkJsApi'<span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(0, 128, 128, 1)"> 38</span>                           'onMenuShareTimeline'<span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(0, 128, 128, 1)"> 39</span>                           'onMenuShareAppMessage'<span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(0, 128, 128, 1)"> 40</span>                           'getLocation'
<span style="color: rgba(0, 128, 128, 1)"> 41</span> <span style="color: rgba(0, 0, 0, 1)">                        ]
</span><span style="color: rgba(0, 128, 128, 1)"> 42</span> <span style="color: rgba(0, 0, 0, 1)">                  });
</span><span style="color: rgba(0, 128, 128, 1)"> 43</span>                     <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">配置完成后,再执行分享等功能</span>
<span style="color: rgba(0, 128, 128, 1)"> 44</span>                     <span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> (callback) {
</span><span style="color: rgba(0, 128, 128, 1)"> 45</span> <span style="color: rgba(0, 0, 0, 1)">                        callback(res.data);
</span><span style="color: rgba(0, 128, 128, 1)"> 46</span> <span style="color: rgba(0, 0, 0, 1)">                  }
</span><span style="color: rgba(0, 128, 128, 1)"> 47</span> <span style="color: rgba(0, 0, 0, 1)">                }
</span><span style="color: rgba(0, 128, 128, 1)"> 48</span> <span style="color: rgba(0, 0, 0, 1)">      });
</span><span style="color: rgba(0, 128, 128, 1)"> 49</span> <span style="color: rgba(0, 0, 0, 1)">    },
</span><span style="color: rgba(0, 128, 128, 1)"> 50</span>   initJssdk:<span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(callback){
</span><span style="color: rgba(0, 128, 128, 1)"> 51</span>         post('https://fbyc.microchainsoft.cn/index/wechat/getSignPackage'<span style="color: rgba(0, 0, 0, 1)">,{},
</span><span style="color: rgba(0, 128, 128, 1)"> 52</span>             <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> (res) {
</span><span style="color: rgba(0, 128, 128, 1)"> 53</span>               <span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">(res.data){
</span><span style="color: rgba(0, 128, 128, 1)"> 54</span> <span style="color: rgba(0, 0, 0, 1)">                  jweixin.config({
</span><span style="color: rgba(0, 128, 128, 1)"> 55</span>                         debug: <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(0, 128, 128, 1)"> 56</span> <span style="color: rgba(0, 0, 0, 1)">                        appId: res.data.appId,
</span><span style="color: rgba(0, 128, 128, 1)"> 57</span> <span style="color: rgba(0, 0, 0, 1)">                        timestamp: res.data.timestamp,
</span><span style="color: rgba(0, 128, 128, 1)"> 58</span> <span style="color: rgba(0, 0, 0, 1)">                        nonceStr: res.data.nonceStr,
</span><span style="color: rgba(0, 128, 128, 1)"> 59</span> <span style="color: rgba(0, 0, 0, 1)">                        signature: res.data.signature,
</span><span style="color: rgba(0, 128, 128, 1)"> 60</span> <span style="color: rgba(0, 0, 0, 1)">                        jsApiList: [
</span><span style="color: rgba(0, 128, 128, 1)"> 61</span>                           'checkJsApi'<span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(0, 128, 128, 1)"> 62</span>                           'getLocation'
<span style="color: rgba(0, 128, 128, 1)"> 63</span> <span style="color: rgba(0, 0, 0, 1)">                        ]
</span><span style="color: rgba(0, 128, 128, 1)"> 64</span> <span style="color: rgba(0, 0, 0, 1)">                  });
</span><span style="color: rgba(0, 128, 128, 1)"> 65</span>                     <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">配置完成后,再执行分享等功能</span>
<span style="color: rgba(0, 128, 128, 1)"> 66</span>                     <span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> (callback) {
</span><span style="color: rgba(0, 128, 128, 1)"> 67</span> <span style="color: rgba(0, 0, 0, 1)">                        callback(res.data);
</span><span style="color: rgba(0, 128, 128, 1)"> 68</span> <span style="color: rgba(0, 0, 0, 1)">                  }
</span><span style="color: rgba(0, 128, 128, 1)"> 69</span> <span style="color: rgba(0, 0, 0, 1)">                }
</span><span style="color: rgba(0, 128, 128, 1)"> 70</span> <span style="color: rgba(0, 0, 0, 1)">            })
</span><span style="color: rgba(0, 128, 128, 1)"> 71</span> <span style="color: rgba(0, 0, 0, 1)">    },
</span><span style="color: rgba(0, 128, 128, 1)"> 72</span>   <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">在需要自定义分享的页面中调用</span>
<span style="color: rgba(0, 128, 128, 1)"> 73</span>   share: <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(data, url) {
</span><span style="color: rgba(0, 128, 128, 1)"> 74</span>         url = url ?<span style="color: rgba(0, 0, 0, 1)"> url : window.location.href;
</span><span style="color: rgba(0, 128, 128, 1)"> 75</span>         <span style="color: rgba(0, 0, 255, 1)">if</span> (!<span style="color: rgba(0, 0, 255, 1)">this</span><span style="color: rgba(0, 0, 0, 1)">.isWechat()) {
</span><span style="color: rgba(0, 128, 128, 1)"> 76</span>             <span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 77</span> <span style="color: rgba(0, 0, 0, 1)">      }
</span><span style="color: rgba(0, 128, 128, 1)"> 78</span>         <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">每次都需要重新初始化配置,才可以进行分享</span>
<span style="color: rgba(0, 128, 128, 1)"> 79</span>         <span style="color: rgba(0, 0, 255, 1)">this</span>.initJssdkShare(<span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(signData) {
</span><span style="color: rgba(0, 128, 128, 1)"> 80</span>             jweixin.ready(<span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">() {
</span><span style="color: rgba(0, 128, 128, 1)"> 81</span>               <span style="color: rgba(0, 0, 255, 1)">var</span> shareData =<span style="color: rgba(0, 0, 0, 1)"> {
</span><span style="color: rgba(0, 128, 128, 1)"> 82</span>                     title: data &amp;&amp; data.title ?<span style="color: rgba(0, 0, 0, 1)"> data.title : signData.site_name,
</span><span style="color: rgba(0, 128, 128, 1)"> 83</span>                     desc: data &amp;&amp; data.desc ?<span style="color: rgba(0, 0, 0, 1)"> data.desc : signData.site_description,
</span><span style="color: rgba(0, 128, 128, 1)"> 84</span> <span style="color: rgba(0, 0, 0, 1)">                  link: url,
</span><span style="color: rgba(0, 128, 128, 1)"> 85</span>                     imgUrl: data &amp;&amp; data.img ?<span style="color: rgba(0, 0, 0, 1)"> data.img : signData.site_logo,
</span><span style="color: rgba(0, 128, 128, 1)"> 86</span>                     success: <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(res) {
</span><span style="color: rgba(0, 128, 128, 1)"> 87</span>                         <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">用户点击分享后的回调,这里可以进行统计,例如分享送金币之类的</span>
<span style="color: rgba(0, 128, 128, 1)"> 88</span>                         <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> post('/api/member/share');</span>
<span style="color: rgba(0, 128, 128, 1)"> 89</span> <span style="color: rgba(0, 0, 0, 1)">                  },
</span><span style="color: rgba(0, 128, 128, 1)"> 90</span>                     cancel: <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(res) {}
</span><span style="color: rgba(0, 128, 128, 1)"> 91</span> <span style="color: rgba(0, 0, 0, 1)">                };
</span><span style="color: rgba(0, 128, 128, 1)"> 92</span>               <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">分享给朋友接口</span>
<span style="color: rgba(0, 128, 128, 1)"> 93</span> <span style="color: rgba(0, 0, 0, 1)">                jweixin.onMenuShareAppMessage(shareData);
</span><span style="color: rgba(0, 128, 128, 1)"> 94</span>               <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">分享到朋友圈接口</span>
<span style="color: rgba(0, 128, 128, 1)"> 95</span> <span style="color: rgba(0, 0, 0, 1)">                jweixin.onMenuShareTimeline(shareData);
</span><span style="color: rgba(0, 128, 128, 1)"> 96</span> <span style="color: rgba(0, 0, 0, 1)">            });
</span><span style="color: rgba(0, 128, 128, 1)"> 97</span> <span style="color: rgba(0, 0, 0, 1)">      }, url);
</span><span style="color: rgba(0, 128, 128, 1)"> 98</span> <span style="color: rgba(0, 0, 0, 1)">    },
</span><span style="color: rgba(0, 128, 128, 1)"> 99</span>   <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">在需要定位页面调用</span>
<span style="color: rgba(0, 128, 128, 1)">100</span>   location: <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(callback) {
</span><span style="color: rgba(0, 128, 128, 1)">101</span>         <span style="color: rgba(0, 0, 255, 1)">if</span> (!<span style="color: rgba(0, 0, 255, 1)">this</span><span style="color: rgba(0, 0, 0, 1)">.isWechat()) {
</span><span style="color: rgba(0, 128, 128, 1)">102</span>             console.log('不是微信客户端'<span style="color: rgba(0, 0, 0, 1)">)
</span><span style="color: rgba(0, 128, 128, 1)">103</span>             <span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">104</span> <span style="color: rgba(0, 0, 0, 1)">      }
</span><span style="color: rgba(0, 128, 128, 1)">105</span>         console.info('定位'<span style="color: rgba(0, 0, 0, 1)">)
</span><span style="color: rgba(0, 128, 128, 1)">106</span>         <span style="color: rgba(0, 0, 255, 1)">this</span>.initJssdk(<span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(res) {
</span><span style="color: rgba(0, 128, 128, 1)">107</span>             jweixin.ready(<span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">() {
</span><span style="color: rgba(0, 128, 128, 1)">108</span>               console.info('定位ready'<span style="color: rgba(0, 0, 0, 1)">)
</span><span style="color: rgba(0, 128, 128, 1)">109</span> <span style="color: rgba(0, 0, 0, 1)">                jweixin.getLocation({
</span><span style="color: rgba(0, 128, 128, 1)">110</span>                     type: 'gcj02', <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'</span>
<span style="color: rgba(0, 128, 128, 1)">111</span>                     success: <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> (res) {
</span><span style="color: rgba(0, 128, 128, 1)">112</span>                         <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> console.log(res);</span>
<span style="color: rgba(0, 128, 128, 1)">113</span> <span style="color: rgba(0, 0, 0, 1)">                        callback(res)
</span><span style="color: rgba(0, 128, 128, 1)">114</span> <span style="color: rgba(0, 0, 0, 1)">                  },
</span><span style="color: rgba(0, 128, 128, 1)">115</span>                     fail:<span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(res){
</span><span style="color: rgba(0, 128, 128, 1)">116</span> <span style="color: rgba(0, 0, 0, 1)">                        console.log(res)
</span><span style="color: rgba(0, 128, 128, 1)">117</span> <span style="color: rgba(0, 0, 0, 1)">                  },
</span><span style="color: rgba(0, 128, 128, 1)">118</span>                     <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> complete:function(res){</span>
<span style="color: rgba(0, 128, 128, 1)">119</span>                     <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">   console.log(res)</span>
<span style="color: rgba(0, 128, 128, 1)">120</span>                     <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> }</span>
<span style="color: rgba(0, 128, 128, 1)">121</span> <span style="color: rgba(0, 0, 0, 1)">                });
</span><span style="color: rgba(0, 128, 128, 1)">122</span> <span style="color: rgba(0, 0, 0, 1)">            });
</span><span style="color: rgba(0, 128, 128, 1)">123</span> <span style="color: rgba(0, 0, 0, 1)">      });
</span><span style="color: rgba(0, 128, 128, 1)">124</span> <span style="color: rgba(0, 0, 0, 1)">    }
</span><span style="color: rgba(0, 128, 128, 1)">125</span> }</pre>
</div>
<span class="cnblogs_code_collapse">View Code</span></div>
<p>2、main.js加载该文件</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 128, 1)">1</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> #ifdef H5</span>
<span style="color: rgba(0, 128, 128, 1)">2</span> import wechat from './common/util/wechat'
<span style="color: rgba(0, 128, 128, 1)">3</span> <span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">(wechat.isWechat()){
</span><span style="color: rgba(0, 128, 128, 1)">4</span>   Vue.prototype.$wechat =<span style="color: rgba(0, 0, 0, 1)">wechat;
</span><span style="color: rgba(0, 128, 128, 1)">5</span> <span style="color: rgba(0, 0, 0, 1)">}
</span><span style="color: rgba(0, 128, 128, 1)">6</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> #endif</span></pre>
</div>
<p>3、页面中使用</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 128, 1)"> 1</span>             <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> #ifdef H5</span>
<span style="color: rgba(0, 128, 128, 1)"> 2</span>             <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">获取定位经纬度</span>
<span style="color: rgba(0, 128, 128, 1)"> 3</span>             <span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(0, 0, 255, 1)">this</span>.$wechat &amp;&amp; <span style="color: rgba(0, 0, 255, 1)">this</span><span style="color: rgba(0, 0, 0, 1)">.$wechat.isWechat()) {
</span><span style="color: rgba(0, 128, 128, 1)"> 4</span>                  <span style="color: rgba(0, 0, 255, 1)">this</span>.$wechat.location(<span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> (res) {
</span><span style="color: rgba(0, 128, 128, 1)"> 5</span> <span style="color: rgba(0, 0, 0, 1)">                     console.log(res)
</span><span style="color: rgba(0, 128, 128, 1)"> 6</span>                     <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> let latitude = res.latitude; // 纬度,浮点数,范围为90 ~ -90</span>
<span style="color: rgba(0, 128, 128, 1)"> 7</span>                     <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> let longitude = res.longitude; // 经度,浮点数,范围为180 ~ -180。</span>
<span style="color: rgba(0, 128, 128, 1)"> 8</span>                     <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> todo</span>
<span style="color: rgba(0, 128, 128, 1)"> 9</span>                     let latitude = 31.14979<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">10</span>                     let longitude = 121.12426<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">11</span>                     
<span style="color: rgba(0, 128, 128, 1)">12</span>                     <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">根据经纬度,解析区域,提示用户输入</span>
<span style="color: rgba(0, 128, 128, 1)">13</span> <span style="color: rgba(0, 0, 0, 1)">               });
</span><span style="color: rgba(0, 128, 128, 1)">14</span> <span style="color: rgba(0, 0, 0, 1)">            }
</span><span style="color: rgba(0, 128, 128, 1)">15</span>             <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> #endif</span></pre>
</div>
<p>&nbsp;</p>
<p>后端服务器,可以参考:https://my.oschina.net/superkangning/blog/368043</p><br><br>
来源:https://www.cnblogs.com/shen55/p/11077677.html
頁: [1]
查看完整版本: UNI-APP开发微信公众号(H5)JSSDK使用