小程序页面生成链接通过短信发送

一、背景

        有一个活动页面需要通过短信将页面链接发送出去,链接里面有公众号二维码,用户扫描企业微信二维码可以添加老师领取资料。

二、实现分析

分析:因为是企业微信二维码所以需要在微信里面打开才行。实现方式最初经过分析可能有以下几种:

  1. 点击短信中活动页面链接拉起微信,然后在微信中打开H5页面。页面中放企业微信二维码然后用户长按识别。
  2. 点击短信中活动页面链接拉起微信小程序,在小程序中可以跳转h5,然后用户可以长按识别企业微信二维码。

经过分析第一种方式没有找到实现方案,第二种小程序官方给出了三种实现方式:

通过URL Scheme实现

通过服务端接口或在小程序管理后台生成URL Scheme后,自行开发中转H5页面。

将带有中转H5链接的短信内容通过开发者自有的短信发送能力或服务商的短信服务进行投放,实现短信打开小程序。

通过URL Link实现

通过服务端接口生成URL Link

直接将带有URL Link的短信内容通过开发者自有的短信发送能力或服务商的短信服务进行投放,实现短信打开小程序。

通过云开发静态网站实现

可以参考「云开发」-「静态网站」-「短信跳小程序」。

经过分析以后决定采用通过url link 方式来实现。

三、业务实现

1.首先开发一个H5页面将包含有企业微信的二维码放在h5页面中。

这个页面只要按照UI设计正常开发即可。

2.将页面放到小程序中

在小程序中新建一个页面,然后使用web-view标签嵌套h5页面

 此时小程序页面如下:

3.将当前小程序页面根据文档生成url link.

此时页面路径为“pages/index/index”

根据官方文档说明生成URL Link 

urllink.generate | 微信开放文档微信开发者平台文档https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/url-link/urllink.generate.html

 public static final String URL_LINK_GENE_URL = "https://api.weixin.qq.com/wxa/generate_urllink?access_token=ACCESS_TOKEN";



/**
     * description: getAccessToken 获取微信公众号<br>
     * version: 1.0 <br>
     * @date: 2021/7/30 0030 下午 2:18 <br>
     * @author: William <br>
     * @param appId      微信AppID
     * @param appSecret  微信授权秘钥
     * @return java.lang.String
     */
    public static String getAccessToken(String appId,String appSecret) {
        String token = null;
        Lock lock = new ReentrantLock();
        lock.lock();
        try {
            String requestTokenUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=SECRET";
            requestTokenUrl = requestTokenUrl.replace("APPID", appId);
            requestTokenUrl = requestTokenUrl.replace("SECRET", appSecret);
            WxTokenVo parse = JsonUtils.parse(HttpClientUtil.doGet(requestTokenUrl), WxTokenVo.class);
            if(parse != null && StringUtils.isNotBlank(parse.getAccess_token())){
                token = parse.getAccess_token();
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            lock.unlock();
        }
        return  token;
    }




public static void main(String[] args) {
        String accessToken = getAccessToken(WxtkConfig.LIVE_APP_ID, WxtkConfig.LIVE_APP_SECRET);
        String requestUrl = URL_LINK_GENE_URL.replace("ACCESS_TOKEN",accessToken);
        Map<String,Object> map = new HashMap<>();
        map.put("path","pages/index/index");
        map.put("query","");
        map.put("env_version","release");
        map.put("is_expire",true);
        map.put("expire_type",1);
        map.put("expire_interval",180);
        //需要引入hutool包或者自己封装一个http请求工具类也行
        String post = HttpUtil.post(requestUrl, JsonUtils.serialize(map));
        System.out.println("post = " + post);
    }

请求成功以后会返回url路径,然后将路径放入到短信模板中进行发送就好了。

4.将小程序页面的url link 放到短信模板,然后调用模板发送即可。

OK。以上就是整个实现思路了。有更好思路的或者想法的可以加微信交流

<think>好的,我现在需要解决用户的问题:在抖音小程序中实现跳转到外部浏览器打开指定URL的功能。首先,我得了解抖音小程序的开发限制和相关API。根据之前的引用资料,比如引用[3]提到小程序开放能力中的web-view组件可以承载网页,但个人类型的小程序可能不支持。而用户的需求是跳转到外部浏览器,而不是在应用内打开网页,这可能需要不同的方法。 接下来,我需要查阅抖音小程序的官方文档,看看是否有支持直接跳转外部浏览器的API。通常,小程序出于安全考虑,可能不允许直接跳转到外部浏览器,但可能有其他变通方法。例如,使用开放标签或者特定的API,比如navigateToMiniProgram,但根据引用[2],抖音小程序使用的是wx.navigateTo这样的方法,类似于微信小程序的API,但不确定是否支持外部跳转。 然后,想到引用[4]提到的URL Scheme,或许可以通过生成一个URL Scheme,让用户点击后触发外部浏览器打开。但需要确认抖音小程序是否支持调用URL Scheme直接打开外部应用。例如,在微信中可以通过URL Scheme实现跳转,但需要相应的配置权限。可能抖音小程序也有类似的机制,但需要查看文档确认。 另外,引用[3]提到web-view组件可以跳转网页,但用户需要在应用内打开,而不是外部浏览器。如果用户希望强制在外部浏览器打开,可能需要引导用户手动操作,比如提示用户在浏览器中打开链接,但这体验不佳。 可能的解决方案是,使用web-view打开一个中间页面,该页面通过JavaScript自动重定向到外部URL,但小程序的web-view是否允许自动跳转呢?或者是否有弹窗提示用户,让用户选择在浏览器中打开。这可能需要与客户端协作,或者是否有API支持。 另外,考虑抖音小程序是否允许使用<a>标签的href属性直接打开外部链接,但通常小程序环境会限制这种操作,只能在web-view内打开。 总结可能的步骤: 1. 检查抖音小程序的API是否支持直接打开外部浏览器,比如是否有类似wx.openBrowser的API。 2. 如果支持,使用相应API实现跳转。 3. 如果不支持,尝试使用URL Scheme,生成对应外部浏览器的URL Scheme,比如http://或https://的链接,可能触发系统浏览器打开。 4. 使用web-view组件加载目标URL,但用户仍然在小程序内访问,无法达到外部浏览器的效果。 5. 或者,提示用户复制链接,手动在浏览器中打开,但体验较差。 需要验证这些方法的可行性,特别是抖音小程序平台的具体限制。根据现有信息,可能目前抖音小程序并未提供直接跳转外部浏览器的API,因此可能需要采用变通方法,或者确认是否有其他途径,比如通过短信或邮件发送链接,引用[4]提到的URL Scheme可以在外部环境中打开小程序,但用户的需求相反,是从小程序跳转到外部浏览器。 最终,可能的结论是:抖音小程序不支持直接跳转外部浏览器,但可以通过web-view展示链接,或引导用户手动操作。或者,如果有URL Scheme的支持,可以尝试生成外部链接URL Scheme来触发浏览器打开,但需要具体测试和官方文档支持。</think>在抖音小程序中实现直接跳转外部浏览器的功能存在平台限制,但可以通过以下方法间接实现: ### 实现方法 1. **使用`web-view`组件内嵌网页** 通过官方提供的`web-view`组件加载目标URL,但页面会在小程序内部打开(无法直接调用外部浏览器): ```javascript // 页面.wxml <web-view src="https://目标网址.com"></web-view> ``` *注意:个人主体小程序不支持此功能,仅企业主体可用[^3]。* 2. **引导用户手动操作** 通过弹窗提示用户复制链接后自行在浏览器中打开: ```javascript Page({ openExternal: function() { wx.showModal({ title: '提示', content: '请复制链接到浏览器打开: https://目标网址.com', success(res) { if (res.confirm) { wx.setClipboardData({ data: 'https://目标网址.com' }) } } }) } }) ``` 3. **尝试调用系统浏览器(需平台支持)** 部分小程序平台允许通过通用链接协议调用外部应用: ```javascript wx.navigateTo({ url: 'https://目标网址.com' // 实际测试中可能被平台拦截 }) ``` ### 平台限制说明 - 抖音小程序遵循主流小程序平台的安全策略,禁止直接调用外部浏览器[^3][^4] - 所有网页跳转行为必须在小程序容器内完成 - 跨平台跳转需要目标应用已注册合法的URL Scheme
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值