微信小程序室内地图导航开发-微信小程序JS加载esmap地图
<h4 class="c-title">一、在微信小程序里显示室内三维地图 需要满足的两个条件</h4><p class="indent">调用ESMap室内地图需要用到小程序web-view组件,想要通过 web-view 调用ESMap室内地图需要满足以下 2 个条件:</p>
<p>1. 小程序是企业主体,微信 web-view 组件不对个人类型的小程序开放。</p>
<p>2. 您需要有一个自己的域名,在嵌入网页的时候需要在微信后台验证域名(只有自己域名下的网页才能被正确地显示哦,不能随便找一个公开链接)。</p>
<p><img src="https://img2018.cnblogs.com/blog/1229169/201909/1229169-20190904112951632-953459793.png"></p>
<h4 class="c-title">二、具体实现步骤</h4>
<p>1、域名验证:</p>
<p class="indent">由于微信平台的规定,web-view 指向的地址,必须是在微信小程序后台登记的域名,否则会出现“不支持打开非业务域名,请重新配置”的提示。</p>
<p>首先我们在微信的后台找到开发 > 开发设置 > 业务域名模块,并填上你需要绑定的域名。</p>
<p><img src="https://img2018.cnblogs.com/blog/1229169/201909/1229169-20190904113011557-323942455.png"></p>
<p class="indent">需要注意的是,这里的域名强制 https,需要配置好 https 证书,购买服务器的时候也要注意购买支持 https 的服务器。</p>
<p class="indent">接下来,我们需要下载一个微信的验证文件,放在你域名的根目录下,并且支持访问。</p>
<p class="indent">具体来说,如果您的域名www.esmap.cn,微信的验证文件是WATLNxupm4.txt,您需要确保https://www.esmap.cn/WATLNxupm4.txt 可以公开访问。确认无误之后,点击保存即可成功保存。</p>
<p>注:小程序所有用到的https请求都需要配置合法域名</p>
<p>2、嵌入带有室内地图的web-view</p>
<p>这个过程其实很简单,找到你微信小程序的.wxml文件,添加以下代码</p>
<pre class="hljs"><code class="hljs xml">
<span class="hljs-tag"><<span class="hljs-name">web-view <span class="hljs-attr">src=<span class="hljs-string">"https://www.esmap.cn /esmap.html"/>
</span></span></span></span></code></pre>
<p>其中 https://www.esmap.cn /esmap.html 是带有地图的 H5 页面</p>
<p>室内地图制作流程,您可以使用下面两种方式构建这个页面:</p>
<p>1) 从https://www.esmap.cn 官网中复制测试地图源码DEMO,在您自己的服务器进行免费部署。</p>
<p>2) 参考https://www.esmap.cn 室内三维地图SDK开发说明,在您已有的 H5 页面上添加自己制作的室内地图。</p>
<h4 class="c-title">3、小程序 web-view 的一些提示</h4>
<p>微信小程序的 web-view 只能是全屏的,并且会覆盖页面中的所有其他组件。</p>
<p>1) 如果想在网页中判断是否处于微信小程序中</p>
<pre class="hljs"><code class="hljs javascript">
<span class="hljs-keyword">var ua = <span class="hljs-built_in">window.navigator.userAgent.toLowerCase();
<span class="hljs-keyword">if (ua.indexOf(<span class="hljs-string">'micromessenger') == <span class="hljs-number">-1) {<span class="hljs-comment">//说明不在微信中
<span class="hljs-comment">// 走不在小程序的逻辑
} <span class="hljs-keyword">else {
wx.miniProgram.getEnv(<span class="hljs-function"><span class="hljs-keyword">function(<span class="hljs-params">res) {
<span class="hljs-keyword">if (res.miniprogram) {
<span class="hljs-comment">// 走在小程序的逻辑
} <span class="hljs-keyword">else {
<span class="hljs-comment">// 走不在小程序的逻辑
}
})
}
</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></pre>
<p>2) 如果网页想给小程序传递信息,可以通过 wx.miniProgram.postMessage 方法。</p>
<p>3) 小程序中可以通过 postMessage 方法监听网页传递回来的数据,但是该方法仅在特定时机(小程序后退、组件销毁、分享)触发,没法实时传递消息。</p>
<p>4) 网页跳转到小程序页面</p>
<pre class="hljs"><code class="hljs css">
<span class="hljs-selector-tag">wx<span class="hljs-selector-class">.miniProgram<span class="hljs-selector-class">.navigateTo({
<span class="hljs-attribute">url: <span class="hljs-string">'/pages/esmap/esmap?location=' + obj.location
});
</span></span></span></span></span></code></pre>
<h4 class="c-title">三、更多效果!</h4>
<p><img src="https://img2018.cnblogs.com/blog/1229169/201909/1229169-20190904113034875-1999800840.png"><img src="https://img2018.cnblogs.com/blog/1229169/201909/1229169-20190904113042398-1218760782.png"></p>
<p> </p>
<p>更多室内三维地图引擎例子功能体验</p>
<p>https://www.esmap.cn/sdk-demo/demo/index.html?tt=cnblogs5</p>
</div>
<div id="MySignature" role="contentinfo">
做一个简单易用的室内三维地图SDK和在线三维地图编辑器……<br><br>
来源:https://www.cnblogs.com/esmap/p/11458022.html
頁:
[1]