1、在手机上启用屏幕旋转支持
app.json:window中设置 "pageOrientation": "auto|landscape" 所有页面都可旋转|是横屏
在页面json文件:"pageOrientation": "auto|landscape" 指定页面旋转|横屏
2、在iPad上启用屏幕旋转支持、PC小程序是否支持用户任意改变窗口大小(包括最大化窗口)
在app.json中添加"resizable": true 在iPad上不能单独配置某个页面是否支持屏幕旋转
3、监听旋转
页面中:
Page({
onResize(res) {
res.size.windowWidth // 新的显示区域宽度
res.size.windowHeight // 新的显示区域高度
}
})
自定义组件中:
Component({
pageLifetimes: {
resize(res) {
res.size.windowWidth // 新的显示区域宽度
res.size.windowHeight // 新的显示区域高度
}
}
})
3.5、监听设备方向
(1)开始监听设备方向的变化。
wx.startDeviceMotionListening({
interval 监听设备方向的变化回调函数的执行频率
game 适用于更新游戏的回调频率,在20ms/次左右
ui 适用于更新UI的回调频率,在60ms/次左右
normal 普通的回调频率,在200ms/次左右
success
...
})
wx.stopDeviceMotionListening({success,...}) 停止监听设备方向的变化
(2)监听设备方向变化事件
频率根据wx.startDeviceMotionListening()的interval参数,可以使用wx.stopDeviceMotionListening()停止监听
wx.onDeviceMotionChange(function(res){
alpha 当手机坐标X/Y和地球X/Y重合时,绕着Z轴转动的夹角为alpha,范围值为[0,2*PI)。逆时针转动为正。
beta 当手机坐标Y/Z和地球Y/Z重合时,绕着X轴转动的夹角为beta。范围值为[-1*PI,PI)。顶部朝着地球表面转动为正。也有可能朝着用户为正。
gamma 当手机X/Z和地球X/Z重合时,绕着Y轴转动的夹角为gamma。范围值为[-1*PI/2,PI/2)。右边朝着地球表面转动为正。
})
wx.offDeviceMotionChange(fn) 取消监听
启用分栏模式
在app.json中同时添加
{
"resizable": true,
"frameset": true
}
(1)分栏占位图片
当某一栏没有展示任何页面时,会展示一张图片在此栏正中央。
如果代码包中的frameset/placeholder.png文件存在,这张图片将作为此时展示的图片。
(2)避免使用更改页面展示效果的接口方法
更改当前页面展示效果的接口,总是对最新打开的页面生效。
例如:在右栏打开一个新页面后,更改页面标题的接口wx.setNavigationBarTitle即使是在左栏的页面中调用,也将更改右栏内页面的标题
改用page-meta和navigation-bar组件代替
(3)在路由接口中使用相对路径,总是相对于最新打开的页面路径
例如:在右栏打开一个新页面后,路由接口wx.navigateTo即使是在左栏的页面中调用,跳转路径也将相对于右栏内页面的路径
应当将这样的路由接口改成Router接口调用,如this.pageRouter.navigateTo
小程序 开启设备旋转以及监听、开启大屏分栏
最新推荐文章于 2024-06-16 09:31:45 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)