微信小程序 Url Scheme 访问小程序实现

1、什么是 URL scheme

URL Scheme,是微信小程序后台生成一种地址,适用于从短信、邮件、微信外网页等场景打开小程序任意页面。通过URL Scheme打开小程序的场景值为 1065。

生成的 URL Scheme 如下所示:

weixin://dl/business/?t= *TICKET*

详见官方文档https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/url-scheme.html

1.1第一种方式

小程序后台 > 工具 > 生成 URL Scheme ,

输入小程序页面路径和启动参数,点击生成


生成 scheme

1.2第二种方式

代码生成,通过在服务端调用 urlscheme.generate 接口生成 url sheme。

2、URL Scheme 进入微信小程序

iOS系统支持识别 URL Scheme,可在短信等应用场景中直接通过Scheme跳转小程序。
Android系统不支持直接识别 URL Scheme,用户无法通过 Scheme 正常打开小程序,开发者需要使用 H5 页面中转,再跳转到 Scheme 实现打开小程序,跳转代码示例如下:

location.href = 'weixin://dl/business/?t= *TICKET*'

2.1 ios 系统跳小程序

可以直接在短信点击链接跳转小程序。


image.png

image.png

打开小程序成功。

2.2Android 系统跳小程序

URL Scheme 需要在 H5 上通过 a 标签跳转打开小程序。
本地代码上传,并在手机打开网页

image.png

手机浏览器(非微信内置浏览器)打开该地址,点击“打开小程序”,看到下方有打开微信的提示,点击“打开”。


image.png

直接启动微信小程序进入页面。

2.3微信内网页跳小程序

微信内的网页如需打开小程序请使用微信开放标签-小程序跳转按钮,无公众号也可以直接使用小程序身份开发网页并免鉴权跳转小程序,见云开发静态网站跳转小程序

参考上面两篇文档,编写 demo如下。

// index.html
<head>
    // 引入微信网页 js sdk 文件
    <script charset="UTF-8" src="http://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
    <title>Hello miniProgram cloud website</title>
    <script charset="UTF-8">
      // 初始化配置
      wx.config({
        debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印
        appId: 'wx16ce2f6e06acd4d5', // 必填,公众号的唯一标识
        timestamp: 0, // 必填,填任意数字即可
        nonceStr: 'nonceStr', // 必填,填任意非空字符串即可
        signature: 'signature', // 必填,填任意非空字符串即可
        jsApiList: ['chooseImage'], // 必填,随意一个接口即可 
        openTagList:['wx-open-launch-weapp'], // 填入打开小程序的开放标签名
      });
    </script>
</head>

<body>
    // 在 h5 网页打开小程序
    <a href="weixin://dl/business/?t=YtqQ6kpcrQd">微信外打开小程序</a>
    <br>
    // 微信内网页打开小程序,username:小程序原始账号 ID(gh_ 开头的),path:要跳转到的页面路径
    <wx-open-launch-weapp id="launch-btn" username="gh_584e35a9a020" path="pages/index/index">
        <template>
            <button style="width: 200px; height: 45px; text-align: center; font-size: 17px; display: block; margin: 0 auto; padding: 8px 24px; border: none; border-radius: 4px; background-color: #07c160; color:#fff;">打开小程序</button>
        </template>
    </wx-open-launch-weapp>

</body>

如果在微信外,通过上面代码的 a 标签打开小程序,微信内网页,通过 wx-open-launch-weapp 标签打开小程序。
将该域名拷贝到微信打开。


image.png

如果是微信外的 h5 页面,则通过上图的 a 标签打开小程序,href 绑定的是 URL Scheme 地址。

推荐阅读更多精彩内容