Skyline渲染引擎
纯公益行业使用,想直接套skyline ui模版,官方的模版不够用,有没有推荐的链接发一发
最近几天发现LivePusherContext.snapshot()拿到的快照宽度只有640,之前是正常的。用一个安卓手机测试,微信版本8.0.54,快照分辨率正常,升级到8.0.55之后,再次获取的快照宽度变成了640。
启用skyline渲染引擎,rich-text 文本内容会强制换行 [图片]
再使用grid-builder组件的 瀑布流属性 时,滚动加载数据在反复滚动后,有非常大的概率会让数据渲染显示但是组件实体未被加载! 意思就是,例如: 屏幕显示图片列表被加载出来,但是呢元素代码其实是没有的。根本不能被选中的,请看截图! 这个截图列表显示已经有5个图片数据被渲染出来了。但是红圈元素只有3个图片!再往下面截图看 [图片] 我们根据这张截图显示,实体被选中的第一个元素是左边最上面的那个。再往下看 [图片] 然后这张截图显示,被选中的实体元素是第二个,但是图片确实右边最上面的那个。再往下看 [图片] 最后一个截图显示,被选中的实体元素是第三个。但是图片并不在可视范围内! [图片] 所以grid-builder组件 的瀑布流模式,在渲染方面有非常大的BUG。之前没有,后面出来的。试了目前所有最新的基础库,都是这样! 这个复现方式就是不停的来回上下滚动加载就行。很容易就能复现!自己给卡片或者元素添加点击事件就知道了
环境: 开发工具:nightly 1.06.2412182 项目运行: npm i构建npm 问题有 3 个 1:从首页点击按钮跳转到内页,然后返回再点击内页,控制台报错 navigateTo:fail timeout。 我猜测是自定义tarbar导致的?只在模拟器上有这个问题,但是手机没有这个问题。 有网友说是开发工具的bug, 但是我也想听听官方的声音 2:skyline在不同基础库版中样式不一致 在3.7.2基础库版本中,可以看到首页的按钮图标是黑色的 在3.3.5基础库版本中,可以看到首页的按钮图标是蓝色的 3:自定义tarbar,只能在每个页面的底部加上边距的形式,避免tarbar挡住页面吗? 有没有更优雅的方式,比如有什么api可以获取tarbar的高度,来动态设置边距,可以完美适配每个机型
这组件都出来几年了,背景色、圆角、旋转都不支持,大小还要内部再放一个view,那这组件有什么用? [图片]
??????????????????????????????????????
开发工具版本已更新最新版本,本地设置已开启Skyline渲染,基础库3.7.1,app.json及页面json删除引入Skyline,则恢复正常。页面正常显示。引入Skyline则工具报错[ WXML 文件编译错误] undefined(env: Windows,mp,1.06.2412162; lib: 3.7.1),只有这个报错信息无法看到具体哪里代码错误,开发工具上页面无法正常显示但是在手机扫码预览模式下,页面正常。工具缓存已清。需求:希望开发工具可以看到具体报错信息,进行代码修改页面调试。[图片][图片]
refresher-two-level-enabled 初始为false,在bind:refresherstatuschange="onStatusChange"二层打开时,改变状态为true,为什么状态变成true后,无法通过this.scrollContext.closeTwoLevel 关闭二层。
下拉二楼第一次下拉正常进入下一页,返回后第二次下拉就报错(errMsg: "navigateTo:fail timeout") <scroll-view id="scrollview" type="custom" scroll-y scroll-with-animation show-scrollbar="{{false}}" refresher-enabled="{{true}}" refresher-threshold="{{80}}" refresher-default-style="none" refresher-triggered="{{triggered}}" refresher-two-level-pinned="{{true}}" refresher-two-level-enabled refresher-two-level-threshold="{{150}}" refresher-two-level-triggered="{{twoLevelTriggered}}" bind:refresherpulling="onPulling" bind:refresherrefresh="onRefresh" bind:refresherrestore="onRestore" bind:refresherabort="onAbort" bind:refresherstatuschange="onStatusChange" worklet:onstartstart="handleScrollStart" worklet:onscrollupdate="handleScrollUpdate" worklet:onscrollend="handleScrollEnd"></scroll-view> onStatusChange(e) { const { status } = e.detail; const refreshStatus = this.buildText(this.getStatusName(status)); this.setData({ refreshStatus }); if (status === 7) { this.navigateToPrivacy(); } }, navigateToPrivacy() { wx.navigateTo({ url: "../privacy/privacy", events: { nextPageRouteDone: this.handleRouteDone.bind(this), }, fail: (err) => { console.error("navigateTo failed", err); }, }); }, handleRouteDone(data) { if (this.scrollContext) { this.scrollContext.closeTwoLevel({ duration: 1 }); } }, [图片]
[图片]
能不能干点人事儿?
[图片] [图片]
关闭skyline渲染就可以运行,尝试主屏幕/副屏幕,更新调试工具到最新版本也不行 [图片]
编译后wxml产物一样,差异仅是json配置。 为什么webview支持,skyline不支持? 表现:skyline展示show(异常),webview不展示show(正常) wxml <com data-custom-hidden="{{!(false)}}" vue-id="f4372d00-1" class="data-v-3e202046" bind:__l="__l" vue-slots="{{['default']}}">show</com> 差异仅是json配置 skyline { "navigationBarTitleText": "测试", "navigationStyle": "custom", "renderer": "skyline", "componentFramework": "glass-easel", "styleIsolation": "shared", "disableScroll": true, "usingComponents": { "com": "/pages/test/com" } } webview { "navigationBarTitleText": "测试", "usingComponents": { "com": "/pages/test/com" } }
版本:1.06.2412031 操作系统:Windwos 10 64bit 有网友说解决方案是把开发者工具放到主屏幕,不要放到副屏幕,但我这里只有一块屏幕,依然可以必现此崩溃问题。 不使用 skyline 渲染则没有问题,一旦开启 skyline 则必定崩溃
[图片] snapshot组件进行截图时,宽度只能按照设备像素比尺寸生成截图,有什么方法可以自定义图片尺寸,因为很多需要的尺寸无法生成?
在skyline模式下,先点击input输入框,使其获取焦点,接着按下方的“插入内容”(setData方式)按钮插入内容到input,再按下方的“清除输入”(setData方式插入空字符串)按扭后,无法清除input内容。键盘输入内容正常可清除。仅在iOS真机下出现此问题。且要在input获取焦点弹出键盘再操作才有此问题。 [视频]
使用 grid-view type=masonry 来实现瀑布流列表得小程序 通过微信打开瀑布流正常使用 通过企业微信打开无效,变成了一排一个的正常列表 [图片]
组件名称:video(Skyline引擎下出现) API名称:wx.previewImage(Webview引擎下出现) 开发者工具版本:Nightly 1.06.2411282(Mac OS Arm 64) 渲染引擎:Skyline, Webview混合 微信客户端:android 8.0.54 问题说明: video组件在开发者工具调试时,显示一个加载的圈,然后控制台提示无法调试video组件, 这个大家都知道,但是,问题来了,我用真机调试,结果和开发者工具得到一样的显示效果,也是转圈,没有报错(页面渲染引擎: Skyline)。wx.previewImage在开发者工具上的表现为随机可预览成功或转圈,真机上表现为全部转圈, 即便我把每张图片链接单拿出来访问都是很快的(页面指定渲染引擎为webview)。[图片][图片] [图片][图片][图片][图片] 从手机的vConsole可以看到, 手机上的wxml结构和电脑开发者工具的wxml结构一样, image有src, video除了一个class之外其他的属性全部丢失。让手机也变成和电脑开发者工具一样?是把手机误认为开发者工具了吗还是? [图片] wx.previewImage安卓客户端表现为所有图片一直在加载中,无法正常显示, 开发者工具表现为随机加载转圈或正常显示。 官方文档中说明的可分页面逐步迁移至Skyline,不必全部迁移到Skyline, 现在出了这种问题,真的不知道怎么处理,请求官方帮忙解答一下。
小程序示例
交互动画 tab
测试了一下,应该是当前最新的版本里,小程序把 LivePusherContext.snapshot 方法的 sourceType 的两个值搞反了,测试结果是传 stream 截取视频源时,拿到的快照尺寸是640*368,传 view 截取渲染后的画面时,拿到的尺寸确实2923*1386,live-pusher组件默认的视频流分辨率就是640*360。
所以,应该是最新版本小程序把方法的两个值判断反了,官方能否尽快修复?