其实我不呆 發表於 2019-8-19 11:21:00

支付宝小程序开发——H5跳转到小程序(获取小程序页面的链接)

<p><strong>前言:</strong></p>
<p>这个问题支付宝小程序官方文档并没有专门说明,钉钉群的官方技术支持给了个开发者社区的帖子,详见:如何跳转小程序。</p>
<p><img src="https://img2018.cnblogs.com/blog/546882/201908/546882-20190815114518692-1204853168.png" alt="" width="700"></p>
<p>如果配置的页面没有参数还好,不会出问题,如果有参数,很可能配出来的链接无法正常获取到携带参数的,坑在这里:</p>
<p>1.page参数:刚开始以为是页面path路径(也就是app.json中的路径),因为后边还有query参数,理所当然的会认为这里只需要path;</p>
<p>2.query参数:虽然看到“启动参数”四个字,但是这种路径没有配过小程序app的启动参数的,微信小程序也不是这么玩的,所以这里就理所当然的被认为是页面参数了;</p>
<p>然后拼接出来的路径是这样的:</p>
<div class="cnblogs_code">
<pre>window.location.href="alipays://platformapi/startapp?appId=xxx&amp;page=pages/goodDetail/goodDetail&amp;query=goods_id%3d101"</pre>
</div>
<p>很显然,这样是无法正常获取页面参数了。经验证,上边的链接拼接中缺少了页面参数的部分,这部分需要转码后追加在页面path后边。</p>
<p><strong>正确操作:</strong></p>
<div class="cnblogs_code">
<pre>//有页面参数(没有启动参数)<br>location.href = "alipays://platformapi/startapp?<span style="color: rgba(0, 204, 255, 1)"><strong>appId=xxx</strong></span>&amp;<span style="color: rgba(255, 102, 0, 1)"><strong>page=pages/goodDetail/goodDetail"+encodeURIComponent("?goods_id="+goods_id)</strong></span></pre>
<pre>//有页面参数,有启动参数(如渠道号、平台号等打开小程序就需要传过来的参数)<br>location.href = "alipays://platformapi/startapp?<span style="color: rgba(0, 204, 255, 1)"><strong>appId=xxx</strong></span>&amp;<span style="color: rgba(255, 102, 0, 1)"><strong>page=pages/goodDetail/goodDetail"+encodeURIComponent("?goods_id="+goods_id)</strong></span>+&amp;<span style="color: rgba(0, 204, 255, 1)"><strong>query=encodeURIComponent("appParams="+xx)</strong></span></pre>
</div>
<p><strong>总结:</strong></p>
<p>官方文档突出了启动参数,却压根儿没提页面参数,初次接触,踩坑难免,毕竟支付宝小程序还在成长中,我们自己也得多多实践,多多尝试。</p>
<p><strong>后记:</strong></p>
<p>除了上述方法,还可以获取小程序页面的https链接,详见如何获取支付宝小程序页面的https链接。</p>

</div>
<div id="MySignature" role="contentinfo">
    个人原创博客,转载请注明来源地址:https://www.cnblogs.com/xyyt<br><br>
来源:https://www.cnblogs.com/xyyt/p/11376063.html
頁: [1]
查看完整版本: 支付宝小程序开发——H5跳转到小程序(获取小程序页面的链接)