Skyline渲染引擎
安卓不显示、苹果正常、开发工具显示方块,如果按照文档中的兼容方式,需要改的地方太多了也,还有什么别的方案么,https://developers.weixin.qq.com/miniprogram/dev/framework/runtime/skyline/migration/compatibility.html[图片] 开发工具信息:stable 1.06.2503290、调试基础库 3.8.3 苹果手机信息:型号iPhone 13、ios版本 18.4.1、微信版本 Version 8.0.59 安卓手机信息:型号 华为畅享60、harmony OS版本 3.0.0、微信版本 Version 8.0.58 开发工具:[图片] 苹果:[图片] 安卓:[图片]
调试基础库版本:3.7.7 skyline模式下 scroll-view 下拉刷新时和刷新完成后都会触发bindscrolltolower事件,并且在scroll-view内无item时,上拉操作也会触发bindscrolltolower触底事件,导致列表界面同时带有下拉刷新和上拉加载功能会出现问题 [图片] 代码如下: js: /** * 页面相关事件处理函数--监听用户下拉动作 */ onRefresh() { console.log("------------------下拉刷新--------------------") if (this.data.loading) { this.setData({ refreshTrigger: false, }) return } setTimeout(() => { var num = this.data.dataList.length + 1 this.data.dataList.push(num) this.setData({ refreshTrigger: false, dataList: this.data.dataList }) }, 1500); }, //上拉加载 onLoadMore() { if (this.data.loading || this.data.refreshTrigger) { return } console.log("------------------加载更多--------------------") this.data.loading = true wx.showLoading({ title: '加载中...', }) setTimeout(() => { wx.stopPullDownRefresh() wx.hideLoading() this.data.loading = false var num = this.data.dataList.length + 1 this.data.dataList.push(num) this.setData({ dataList: this.data.dataList }) }, 1500); }, wxss: .scrollarea { flex: 1; overflow-y: hidden; background-color: yellow; } .item-conteiner { width: 100%; height: 86rpx; text-align: center; background-color: white; } wxml: <scroll-view class="scrollarea" scroll-y="true" refresher-enabled="true" refresher-threshold="{{100}}" refresher-triggered="{{refreshTrigger}}" bindrefresherrefresh="onRefresh" bindscrolltolower="onLoadMore" refresher-background="#EDEDED" lower-threshold="1px"> <block wx:for="{{dataList}}" wx:key="*this"> <view class="item-conteiner">{{item}}</view> </block> </scroll-view>
https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html 用户命中了快照页模式 api.weixin.qq.com/sns/oauth2/access_token 接口没有返回is_snapshotuser字段信息,刷新访问多次后才有is_snapshotuser字段信息 [图片][图片]
我知道,我知道,skyline还没有在鸿蒙OS中适配; 但正如标题,预防一下,因为我正在写skyline中的全局工具栏app-bar,于是就用鸿蒙手机试了下,显示不了app-bar的任何可见内容。 [图片] [图片] 第二张图就是鸿蒙设备上的显示效果
正常情况: [图片] 异常情况: [图片] 触发条件: 切换进入子页面,重新返回时几乎100%触发 测试平台:ios,wx: 8.0.58 https://developers.weixin.qq.com/miniprogram/dev/component/swiper.html [图片] <swiper transformer-type="scaleAndFade" layout-type="tinder" duration="250" circular="true" indicator-dots="{{true}}" autoplay="{{true}}" > <swiper-item wx:for="{{food}}" wx:key="*this" > <view class="tmp-card"> <image src="{{item}}" mode="aspectFill" ></image> </view> </swiper-item> </swiper>
<snapshot id="view" class="snapshot-container" mode="view"> <!-- 外层横向滚动 --> <scroll-view scroll-x class="outer-scroll"> <!-- 内层纵向滚动 --> <scroll-view scroll-y class="inner-scroll" style="width: {{750 * scale}}rpx;"> <view class="image-wrapper" style="width: {{750 * scale}}rpx; height: {{750 * scale}}rpx;"> <image src="{{img}}" class="main-image" style=" width: {{750}}rpx; height: {{750}}rpx; transform: translate(-50%, -50%) scale({{scale}});" /> <!-- 遍历区域 --> <block wx:for="{{areas}}" wx:key="id" wx:for-item="areaItem"> <view class="element-container" style="right: {{areaItem.right * scale}}rpx; top: {{areaItem.top * scale}}rpx; width: {{areaItem.width * scale}}rpx; height: {{areaItem.height * scale}}rpx;border: {{generate ? (info.borderColor ? '1px dashed ' + info.borderColor : '1px dashed #999') : '1px dashed transparent'}}; box-shadow: 0px 0px 5px 2px {{areaItem.id == currentContainerId && generate ? 'transparent' : 'transparent'}};" data-areaid="{{areaItem.id}}"> <!-- 当前区域的元素 --> <block wx:for="{{elements}}" wx:key="id"> <block wx:if="{{item.areaId === areaItem.id}}"> <!-- 图片元素 --> <view wx:if="{{item.type === 'image'}}" class="element image-element {{activeElementId === item.id && generate ? 'active' : ''}}" style="width: {{item.width * scale}}rpx;height: {{item.height * scale}}rpx;left: {{item.x * scale}}rpx;top: {{item.y * scale}}rpx;transform: rotate({{item.rotate}}deg);opacity: {{item.opacity}};z-index: {{item.zIndex}};" catchtouchstart="handleTouchStart" catchtouchmove="handleTouchMove" catchtouchend="handleTouchEnd" data-id="{{item.id}}"> <image src="{{item.src}}?width={{item.width}}" mode="aspectFill" class="element-image" wx:key="{{item.src}}" /> <view class="resize-handle {{generate ? 'resizeactive' : ''}}" catchtouchstart="handleResizeStart" data-id="{{item.id}}" style="transform: scale({{1 * scale}});"></view> </view> <!-- 文字元素 --> <view wx:if="{{item.type === 'text'}}" class="element text-element {{activeElementId === item.id && generate ? 'active' : ''}}" style="width: {{item.width * scale}}rpx;height: {{item.height * scale}}rpx;left: {{item.x * scale}}rpx;top: {{item.y * scale}}rpx;transform: rotate({{item.rotate}}deg);opacity: {{item.opacity}};color: {{item.color}};writing-mode: {{item.vertical ? 'vertical-rl' : 'horizontal-tb'}};font-size: {{item.fontSize * scale}}rpx;letter-spacing: {{item.spacing * scale}}rpx;z-index: {{item.zIndex}};" catchtouchstart="handleTouchStart" catchtouchmove="handleTouchMove" catchtouchend="handleTouchEnd" data-id="{{item.id}}"> {{item.content}} <view class="resize-handle {{generate ? 'resizeactive' : ''}}" catchtouchstart="handleResizeStart" data-id="{{item.id}}" style="transform: scale({{1 * scale}});"></view> </view> </block> </block> </view> </block> </view> </scroll-view> </scroll-view> </snapshot
两个bug,一个是使用page-meta 进行横屏切换,ios跟安卓都有不一样的bug,安卓:a页面—— b页面,b页面进行旋转,返回a页面后,a页面也旋转了。 ios:a页面——b页面,b页面设置旋转无反应,返回a页面,a页面旋转了 ios 8.0.58 基础库 3.8.3 代码片段 https://developers.weixin.qq.com/s/8iXQoXmd7VZ7
webview模式页面内的遮罩元素可以覆盖住自定义 tabBar,切换为skyline渲染后,无法覆盖。在skyline模式下有什么办法可以让页面遮罩覆盖自定义 tabBar
https://developers.weixin.qq.com/s/aJ8GqWmF7mZV 在skyline模式下,给scrollView设置一个初始scrolltop值时,会导致scrollView触发bindscroll事件。webview渲染无问题
<scroll-view binddragstart="onDrag" binddragging="onDragging" binddragend="onDragend" bind:scroll="onScroll" enhanced style="height: 100vh;margin-top: 20%;" scroll-y="{{true}}" type="list"> binddragstart binddragging binddragend均无法触发
[图片][图片][图片] 图上的问题如何解决啊? 模拟屏幕什么都不显示 反复重装了微信开发者工具十几次,就是不行! 右侧的版本也不知道怎么选择! “点此切换渲染模式” 也不能用! 如何关闭或卸载skyline? 急!!!!急!!!!急!!!!
/**index.wxss**/ page { height: 100vh; display: flex; flex-direction: column; background-color: #F0F5FA; } .scrollarea { flex: 1; overflow: hidden; } @keyframes skeleton-loading { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } } .block { width: 686rpx; height: 236rpx; background-image: linear-gradient(90deg, #FFFFFF 0%, #FAF8F8 50%, #FFFFFF 100%); background-size: 200% 100%; background-color: #F5F6F8; animation: skeleton-loading 2.2s infinite linear; border-radius: 24rpx; } 渐变背景会超出当前View 如图[图片] skyline模式下 删除borderradius后正常。 以上代码在webview渲染下[图片] https://developers.weixin.qq.com/s/ODRDpUmj7yZJ 代码片段
"tdesign-miniprogram": "^1.9.1", <view class="goods-card__down"> <price wx:if="{{ goods.price }}" wr-class="spec-for-price" symbol-class="spec-for-symbol" symbol="{{currency}}" price="{{goods.price}}" /> <price wx:if="{{ goods.originPrice && isValidityLinePrice }}" wr-class="goods-card__origin-price" symbol="{{currency}}" price="{{goods.originPrice}}" type="delthrough" /> <t-icon class="goods-card__add-cart" prefix="wr" name="cartAdd" id="{{independentID}}-cart" data-id="{{independentID}}" catchtap="addCartHandle" size="48rpx" color="#FA550F" /> </view> [图片]
<scroll-view class="scroll-area" type="custom" using-sticky scroll-y> <!-- --> <list-view> <block wx:for="{{list}}" wx:key="index"> <horizontal-drag-gesture-handler worklet:ongesture="handleGesture" data-index="{{index}}"> <view> <!-- --> </view> </horizontal-drag-gesture-handler> </block> </list-view> </scroll-view> handleGesture(event) { 'worklet'; if (this.data.flag) { return false; } // ... } 代码大概如上,我在`handleGesture`中处理手势操作,当flag为true的时候,就不处理手势了。 目前发现以上代码不行,handleGesture里面好像会无视flag的值,继续执行
skyline 究竟支持 :active 伪类吗? 官方文档又是写的什么 [skyline wxss warning] Unsupported @charset block (/app.wxss:1:9) Invalid Selectors: Unsupported Pseudo Classes. Only support :first-child, :last-child. Style Text: ".c_btn:active" [图片]
前情提要: https://developers.weixin.qq.com/community/minihome/doc/0000c0a90303f874e633df39861000 首先如上,是Component()链式调用没有类型提示,完全不知道哪些是支持的,哪些又不支持; 然后如题,链式调用中使用Computed的behavior,会报错如下: import { behavior as computedBehavior } from 'miniprogram-computed' Component() .behavior(computedBehavior) .data(() => ({ windowInfo: wx.getWindowInfo(), })) .pageLifetime('resize', function () { this.setData({ windowInfo: wx.getWindowInfo(), }) }) .register(); [图片] 俺寻思官方文档说可以这样写的吧: [图片] 还是说事实上Computed这个项目已经被官方放弃更新了?压灭咯,不要放弃啊官方酱。
如题,字面意思。 我尝试了通过官方开发工具稳定版直接创建js+skyline项目,以及创建TS+skyline项目,在尝试使用自定义组件构造器Component()进行链式调用时,开发工具根本就没有任何正确的类型提示,只有一味地提醒我“哎呀,你的Component()里面应该传参哟”。 [图片]
在skyline模式下,设置了rich-text的mode为web,ide提示去真机调试,然而真机上一样没有卵用啊 基础sdk:3.8.0 skyline版本:1.4.5 https://developers.weixin.qq.com/s/11zmxKm87AZj
Skyline模式下监听键盘高度不稳定,不能监听到键盘收起来和主动收起键盘不触发
[图片] 关闭skyline模式,默认字体是这样的 [图片], 要怎么解决呢,试了手动设置 font-family: 'PingFang SC', system-ui, -apple-system; 无效
小程序示例
交互动画 tab
续:
而且安卓的会提示错误,但是不影响使用[图片]