小程序跳转:h5避免中间页直接打开微信小程序

目录

需求来源

最近有个需求:移动端网站某个页面,需要实现点击某个按钮能直接打开微信小程序,避免打开中间页打开小程序的方式,这种方式对用户更友好,避免用户流失。

这时候就得动动自己的小脑筋了,由于该开放能力是微信小程序开放不久,所以网上的相关资料较少。小程序的官方文档肯定是有的,在小程序的开发能力=》获取小程序链接中找到了相关文档。获取 URL Scheme、获取 URL Link、获取 Short Link等等,都是获取打开小程序链接的方案。经过阅读文档,获取 URL Scheme是满足需求的。所以在这里重点整理了下利用获取 URL Scheme方式来打开小程序的方案,亲测有效。

实现步骤

1. 获取 URL Scheme

接口调用方式点击下方的服务端接口进行查看:

通过服务端接口或在小程序管理后台「工具」-「生成 URL Scheme」入口可以获取打开小程序任意页面的 URL Scheme。适用于从短信、邮件、微信外网页等场景打开小程序。 通过 URL Scheme 打开小程序的场景值为 1065。
生成的 URL Scheme 如下所示:

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

2. 通过URL Scheme打开小程序

iOS系统支持识别 URL Scheme,可在短信等应用场景中直接通过Scheme跳转小程序。

Android系统不支持直接识别 URL Scheme,用户无法通过 Scheme 正常打开小程序,开发者需要使用 H5 页面使用js打开小程序,跳转代码示例如下:

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

或者a标签跳转:

<a href="weixin://dl/business/?t= *TICKET*">打开小程序</a>

注意: 该跳转方法可以在用户打开 H5 时立即调用,也可以在用户触发事件后调用。

注意事项

  1. 该方式在非微信浏览器使用是完全没问题的,但是在微信浏览器,就会跳出一个中间页再提示打开小程序。为了避免这种情况,还是需要判断如果是在微信浏览器中,就使用跳转小程序的开放标签直接去打开小程序,具体使用方式可以参考官方文档静态网站 H5 跳小程序或者我的另一篇博客小程序跳转:云开发之h5跳小程序,这两篇文章都可以找到判断微信浏览器使用开发标签打开的方式。
  2. 该功能基本覆盖当前用户正在使用的微信版本,开发者无需进行低版本兼容。
  3. 只能生成已发布的小程序的 URL Scheme。
  4. 该方式只针对非个人主体小程序开放。
  5. 该方案参考了官方文档获取 URL Scheme,在此基础上做了一定的筛选,更多详细内容请参考官方文档。

更多前端知识

如果案有任何疑问可以留言,更多相关技术也可以加QQ群交流:568984539

更多前端、uniapp、nodejs等相关知识可关注我个人博客:https://blog.csdn.net/qq_42961150?spm=1011.2124.3001.5343

觉得有帮助的动动你的小手点个赞吧~

### RT-DETRv3 网络结构分析 RT-DETRv3 是一种基于 Transformer 的实时端到端目标检测算法,其核心在于通过引入分层密集正监督方法以及一系列创新性的训练策略,解决了传统 DETR 模型收敛慢和解码器训练不足的问题。以下是 RT-DETRv3 的主要网络结构特点: #### 1. **基于 CNN 的辅助分支** 为了增强编码器的特征表示能力,RT-DETRv3 引入了一个基于卷积神经网络 (CNN) 的辅助分支[^3]。这一分支提供了密集的监督信号,能够与原始解码器协同工作,从而提升整体性能。 ```python class AuxiliaryBranch(nn.Module): def __init__(self, in_channels, out_channels): super(AuxiliaryBranch, self).__init__() self.conv = nn.Conv2d(in_channels, out_channels, kernel_size=3, padding=1) self.bn = nn.BatchNorm2d(out_channels) def forward(self, x): return F.relu(self.bn(self.conv(x))) ``` 此部分的设计灵感来源于传统的 CNN 架构,例如 YOLO 系列中的 CSPNet 和 PAN 结构[^2],这些技术被用来优化特征提取效率并减少计算开销。 --- #### 2. **自注意力扰动学习策略** 为解决解码器训练不足的问题,RT-DETRv3 提出了一种名为 *self-att 扰动* 的新学习策略。这种策略通过对多个查询组中阳性样本的标签分配进行多样化处理,有效增加了阳例的数量,进而提高了模型的学习能力和泛化性能。 具体实现方式是在训练过程中动态调整注意力权重分布,确保更多的高质量查询可以与真实标注 (Ground Truth) 进行匹配。 --- #### 3. **共享权重解编码器分支** 除了上述改进外,RT-DETRv3 还引入了一个共享权重的解编码器分支,专门用于提供密集的正向监督信号。这一设计不仅简化了模型架构,还显著降低了参数量和推理时间,使其更适合实时应用需求。 ```python class SharedDecoderEncoder(nn.Module): def __init__(self, d_model, nhead, num_layers): super(SharedDecoderEncoder, self).__init__() decoder_layer = nn.TransformerDecoderLayer(d_model=d_model, nhead=nhead) self.decoder = nn.TransformerDecoder(decoder_layer, num_layers=num_layers) def forward(self, tgt, memory): return self.decoder(tgt=tgt, memory=memory) ``` 通过这种方式,RT-DETRv3 实现了高效的目标检测流程,在保持高精度的同时大幅缩短了推理延迟。 --- #### 4. **与其他模型的关系** 值得一提的是,RT-DETRv3 并未完全抛弃经典的 CNN 技术,而是将其与 Transformer 结合起来形成混合架构[^4]。例如,它采用了 YOLO 系列中的 RepNCSP 模块替代冗余的多尺度自注意力层,从而减少了不必要的计算负担。 此外,RT-DETRv3 还借鉴了 DETR 的一对一匹配策略,并在此基础上进行了优化,进一步提升了小目标检测的能力。 --- ### 总结 综上所述,RT-DETRv3 的网络结构主要包括以下几个关键组件:基于 CNN 的辅助分支、自注意力扰动学习策略、共享权重解编码器分支以及混合编码器设计。这些技术创新共同推动了实时目标检测领域的发展,使其在复杂场景下的表现更加出色。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

上网的虫不叫网虫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值