试试在 setData callback 中更新 current
动态改变swiper-item数量,然后修改current无效?skyline模式下动态增加swiper-item的数量,然后修改current为最后一个,有几率跳转无效,推测是页面还没渲染完成?这个时机该如何把握呢?
09-13首页也是 skyline 吗
怎么预加载Skyline页面中的某个资源?我想在首页预加载某个Skyline页面用到的图片,我发现就算首页加载完后,skyline页面还需要再获取一次这张图片,他们是不是缓存不共用的? 有没有办法可以实现首页预加载Skyline页面的图片,Skyline不会重复加载;
09-13如果是为了适配安全区域,用 css env safe-area-inset-* 实现更佳
关于状态栏(statusBar)、导航栏(navBar)、底部安全区域高度的计算问题?!测试使用的Android设备:小米10至尊纪念版 苹果设备:iPhone X 微信开发工具的模拟器:iPhone X 将手机分为四个区域,分别是“状态栏(statusBar)、导航栏(navBar)、内容区域、底部安全区域(bottomSafe)”,如图所示 [图片] 已知前提如下 statusBar的高度可以通过wx.getWindowInfo().statusBarHeight获取到navBar的高度等于胶囊高度+上下边距wx.getWindowInfo().safeArea.height的值表示“内容区域 + 导航栏”的高度 要探讨的问题 当navigationStyle为custom时,以上已知全部成立,但是为default时,第二条已知似乎有问题 正确的表现(navigationStyle: custom) 首先来看代码在不同设备、系统下正常的表现(高度全部占满,无纵向滑动条出现)[图片] 各文件代码 <!-- index.wxml --> <view class="status-bar" style="height: {{statusBarHeight}}px;"></view> <!-- <view class="nav-bar" style="height: {{navBarHeight}}px;"></view> --> <view class="safe" style="height: {{safeHeight}}px;"></view> <view class="bottom-safe" style="height: {{bottomSafeHeight}}px;"></view> // index.js Page({ data: { statusBarHeight: 0, navBarHeight: 0, safeHeight: 0, bottomSafeHeight: 0, }, onLoad() { // 获取的数值单位是px const windowInfo = wx.getWindowInfo(); const menuButtonInfo = wx.getMenuButtonBoundingClientRect(); console.log(windowInfo); console.log(menuButtonInfo); let statusBarHeight = windowInfo.statusBarHeight; let navBarHeight = menuButtonInfo.height + (menuButtonInfo.top - statusBarHeight) * 2; let safeHeight = windowInfo.safeArea.height; let bottomSafeHeight = windowInfo.screenHeight - windowInfo.safeArea.height - statusBarHeight; this.setData({ statusBarHeight, navBarHeight, safeHeight, bottomSafeHeight, }); console.log("statusBarHeight", statusBarHeight); console.log("navBarHeight", navBarHeight); console.log("safeHeight", safeHeight); console.log("bottomSafeHeight", bottomSafeHeight); }, }); /* index.wxss */ page { background-color: red; } view { width: 100%; } .status-bar { background-color: rgb(55, 150, 187); } .nav-bar { background-color: bisque; } .safe { background-color: burlywood; } .bottom-safe { background-color: rgb(59, 112, 209); } // index.json { "usingComponents": {}, "navigationStyle": "custom" } 当navigationStyle为default时,状态栏和导航栏都会使用微信默认的,所以应该把自己写的状态栏和导航栏的view删除,因为safeHeight还包含了导航栏高度,所以内容区域的高度应该是safeHeight - navBarHeight <!-- index.wxml就变成了这样 --> <!-- <view class="status-bar" style="height: {{statusBarHeight}}px;"></view> --> <!-- <view class="nav-bar" style="height: {{navBarHeight}}px;"></view> --> <view class="safe" style="height: {{safeHeight-navBarHeight}}px;"></view> as <view class="bottom-safe" style="height: {{bottomSafeHeight}}px;"></view> 此前,模拟器和真机上的表现是一直的,但是在这里,就不一致了 模拟器上出现了滚动条,iPhone真机表现高度都正常,Android真机表现底部缺少了1像素(背景是红色的,可以看到底部出现了1像素高度的红色) [图片] [图片] 猜测这个问题是因为导航栏(navBar)高度计算不对导致的,间接导致了内容区域高度不正确 之前导航栏的高度是胶囊高度+胶囊上下边距,上下边距相等 胶囊左上角到状态栏顶边的垂直距离如图所示(蓝色线段),代码为:wx.getMenuButtonBoundingClientRect().top [图片] 胶囊左上角到状态栏顶边的垂直距离 减去 状态栏的高度 就是一个边距的值,所以 menuButtonInfo.height + (menuButtonInfo.top - statusBarHeight) * 2 就是导航栏的高度,但是nagivationStyle为default时,似乎就不是这么计算的了?请问官方,这时候导航栏的高度是怎么计算的呢? 以上代码已上传到代码片段 参考的文章 https://developers.weixin.qq.com/community/develop/article/doc/00008a245604d8a1a8ce322345bc13https://developers.weixin.qq.com/community/develop/article/doc/0000ecde0e49a85a314c9d44d51013
08-29content 加个 !important 试试
skyline模式下rich-text不支持空白行、有序列表、无序列表的check样式?左边是skyline模式,右边是WebView模式下渲染的结果。上半部分是rich-text,下半部分是用text把html内容打印出来。 [图片] [图片] wxml中: [图片] wxss中: [图片] 请问: 1,<br>似乎不起作用,是什么原因,是bug吗,还是我设置的不对? 2,有序列表前面的编号没有渲染出来,是什么原因? 3,对无序列表设置的样式似乎并不起作用,是什么原因?html的样式设置应该怎么写? 谢谢。
08-21怀疑你正式环境下,text 内的文本通过 setData 更新,有时序问题
skyline引擎下,用boundingClientRect获取不到span下text的rect信息skyline引擎下,用boundingClientRect获取不到span下text的rect中与offset相关的信息。这是一个诡异的问题,如果用代码片段模式,会发现是能获取到。一到正式工程,就获取不到了,所以不要在代码片段模式里面复现。复现步骤如下: 用js-skyline基础模板创建一个项目。将以下代码复制到项目首页。// index.wxml <view style="height: 200px;"></view> <span id="span"> <text id="text">text</text> </span> // index.js Component({ lifetimes: { ready() { this.createSelectorQuery().select(`#text`) .boundingClientRect((rect) => { if (rect) { console.log(`text rect:${JSON.stringify(rect)}`) } }) .exec(); } } }) 3.开发者工具控制台或真机环境都会输出如下结果,所有offset的相关信息是0 text rect:{"id":"text","dataset":{},"left":0,"top":0,"right":0,"bottom":0,"width":0,"height":0} 4.如果以代码片段运行,会得到正确结果: text rect:{"id":"text","dataset":{},"left":0,"right":29.109375,"top":200,"bottom":221,"width":29.109375,"height":21}
08-21不支持,正在规划。可能这些小程序自行兼容了
Skyline支持windows端小程序吗?官方说Skyline暂时还不支持windows端小程序,为什么有些小程序在windows端支持Skyline 并且可以使用snapshot把截图保存到电脑?
08-21[图片] 估计你的开发者工具不是最新版
Skyline @media (prefers-color-scheme: dark) 异常/* miniprogram/app.wxss */ page { color: black; background-color: white; } @media (prefers-color-scheme: dark) { page { color: white; background-color: black; } } 真机正常,开发者工具异常(媒体查询中定义的 dark mode 的样式全部失效)。
08-21发一下原图片文件看看。
Skyline Image 图片显示模糊左侧为开启 Skyline 渲染调试后,右侧为 Webview,全新创建的项目,没有任何操作,Skyline 非常非常模糊,真机调试一样的结果 <scroll-view class="scroll-area" type="list" scroll-y> <view style="width: 160rpx; margin: 30rpx;"> <image mode="aspectFit" style="max-width: 100%;" src="https://xxx.xxx.com/xxx.png" /> </view> </scroll-view> [图片][图片]
08-21[图片]试了一下,正常,看下开发者工具的版本是否最新
【skyline】::before 的 margin、padding 失效.parentTitle::before { content: \2190; margin-right: 8px; } [图片]
08-21appid 可以提供下
整体 Skyline 模式的小程序,启动耗时为啥很长?我的 Skyline 小程序按文档优化后总启动耗时还是很长: [图片] 性能相关配置: [图片] 无全局组件。全局开启了 Skyline 模式,并且所有页面都是 Skyline 。包体积已经优化:[图片] [图片] 另外,首页 onLoad 只有一个接口,而且为匿名用户加了缓存。 请 Skyline 官方帮看看,冷启动优化方面还有什么可以优化的地方?
08-01