wx-open-launch-weapp 样式问题

wx-open-launch-weapp 样式问题,第1张

此前写过一篇文章: 关于 React 中使用 wx-open-launch-weapp 唤起微信小程序 。但针对该标签设置样式非常地蛋疼。

这篇文章主要介绍,如何在 <wx-open-launch-weapp> 写样式的踩坑过程(以 React 为例)。

由于在 <wx-open-launch-weapp> 添加样式会非常多的问题,可能各种不生效。

因此,我会这样去设计: container 为点击唤起小程序的区域(相对定位),而 content 则是该区域的展示内容, wx-open-launch-weapp 则是占满唤起区域(绝对定位)。

为什么要这样设计?后面的方案会给出答案。

当前这个需求,由于我的 content 只是一张图片,所以我的第一个想法是这样的。

将 <wx-open-launch-weapp> 宽高设为 100% ,我们先看下效果:

这时候只出现了紫色部分,且紫色部分点击也没有任何效果,不能唤起小程序。 然后,我想是不是 <script type="text/wxtag-template"> 未设置宽高的问题,将其设置为 100% 之后,效果一样均无效。

由于上一个方案流产之后,马上想到会不会是 100% 不生效,于是想着将宽高设置为具体值。如下:

效果如上,尽管 <wx-open-launch-weapp> 占满 container 的宽度。可高度。。。接着我尝试设为 {{ width: '6.9rem', height: '100%' }} ,效果完全一致,高度仍无法占满 container 的高度。

我又想是不是 rem 单位问题,然后我又改为 {{ width: '690px', height: '182px' }} 看看有什么不一样,但高度仍然如上图一样,可宽度倒是有变化。

无奈.jpg

到这里想吐了,我想着先解决 <wx-open-launch-weapp> 占满 container 的问题,暂时忽略 <script type="text/wxtag-template"> 的问题。

既然方案二尝试了各种可能性,无论怎么设置宽高仍不尽人意。于是采用 绝对布局 看看:

好像看到希望了, <wx-open-launch-weapp> 已经占满 container 了。

但是这时候 <script type="text/wxtag-template"> 的区域仍然没有展示出来,那我是不也要设为绝对布局呢,试试看:

效果如下:

好像快成功了,高度还是不对。其中紫色部分属于 <wx-open-launch-weapp>,而粉红部分属于 <script type="text/wxtag-template">。所以点击粉红区域可以正常唤起小程序了。

然后,又想到将 top 设为 0 ,发现可以了。

为了兼容性,于是我谨慎地将 top 、 left 均设为 0 。

到这里,感觉可以收尾了。

回到文章开头的设计:

考虑到上面就一个宽高的问题,就那么难搞了。所以我想把页面元素与唤起小程序的区域分开来,是不是省心很多。

完整示例:

这个过程差点吐血,可喜的是可以愉快地唤起小程序了。

The end.

定义: 微信开放标签是微信公众平台面向网页开发者提供的扩展标签集合。通过使用微信开放标签,网页开发者可安全便捷地使用微信或系统的能力,为微信用户提供更优质的网页体验

有哪些开放标签?

<wx-open-launch-weapp> 打开小程序

<wx-open-launch-app> 打开app

接入要求

主体要求: 仅开放给已认证的服务号

系统要求:

微信版本要求为:7.0.12及以上。系统版本要求为:iOS 10.3及以上、Android 5.0及以上

接入方法

打开小程序使用步骤与微信JS-SDK类似,需要绑定安全域名、引入JS文件等步骤

打开app需要前往微信开放平台的管理中心-公众账号或小程序详情-接口信息-网页跳转移动应用-关联设置中绑定所需要跳转的App

示例:

配置最新JSSDK

wx.config({

// 其它配置不变, openTagList配置可使用的开放标签,

openTagList: ['wx-open-launch-app, wx-open-launch-weapp']

})

页面使用开放标签

打开小程序

id="launch-btn"

// 小程序id

username="gh_xxxxxxxx"

// 小程序路径

path="/a/b/c?d=1&e=2#fg"

>

.btn { padding: 12px }

打开小程序

打开app

id="launch-btn"

// 移动应用appid

appid="your-appid"

// 额外信息, 客户端自行解析

extinfo="your-extinfo"

>

.btn { padding: 12px }

App内查看

回调

var btn = document.getElementById('launch-btn')

// 调起成功回调

btn.addEventListener('launch',function(e) {

console.log('success')

})

// 调起失败回调

btn.addEventListener('error',function(e) {

console.log('fail', e.detail)

})


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7974286.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存