目前小程序涉及获取手机号的文档有3个 https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/getPhoneNumber.html https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/user-info/phone-number/getPhoneNumber.html https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/phonenumber/phonenumber.getPhoneNumber.html 第1个文档讲明了要在客户端用button组件code,然后传到服务器调用服务端的getPhoneNumber获取手机号 并且该文档特意提到“getPhoneNumber 返回的 code 与 wx.login 返回的 code 作用是不一样的,不能混用” 第2、3个文档讲的服务端getPhoneNumber接口,大同小异 目前小游戏涉及获取手机号的文档有2个 https://developers.weixin.qq.com/minigame/dev/api-backend/open-api/phonenumber/phonenumber.getPhoneNumber.html https://developers.weixin.qq.com/minigame/dev/wxcloud/guide/practice/getphone.html 第1个文档讲的服务端getPhoneNumber接口,和上面小程序的差不多。 奇怪的是,该文档中code参数的说明“手机号获取凭证”链接的是上面小程序的第1个文档 第2个文档讲的云开发环境下, 通过按钮组件结合自定义云函数获取手机号,讲的很模糊 小游戏的2个文档传递的信息比较模糊混乱,小游戏到底能不能获取用户手机号?能的话到底要怎样才能合规的获取到? 1. 小游戏这边是否真的在服务端开放了getPhoneNumber接口? 2. 如果开放了的话,小游戏这边getPhoneNumber接口的code参数到底要怎么获得? 3. 用第三方引擎开发的小游戏,是没办法使用所谓“按钮组件”的,到底有没有办法获取用户手机号?
微信小游戏这边已经可以在服务端利用getPhoneNumber接口获取用户手机号了吗?这里有几个之前的提问,之前小游戏这边应该是不支持获取用户手机号的 https://developers.weixin.qq.com/community/minigame/doc/0000cc3078c1a026a9a9d31775b400 https://developers.weixin.qq.com/community/minigame/doc/000aa8c611c878dfad3b6bc1d56000 https://developers.weixin.qq.com/community/develop/doc/000c8809f60418706d4e06c2c54400 现在是20220922,我发现小游戏的服务端文档已经有了getPhoneNumber https://developers.weixin.qq.com/minigame/dev/api-backend/open-api/phonenumber/phonenumber.getPhoneNumber.html 请问微信小游戏这边真的已经可以在服务端利用这个getPhoneNumber接口获取用户手机号了吗? 如果可以的话,接口所需的code参数是用登陆时调用wx.login得到的就行了吗? 谢谢
2022-09-22小游戏现在也有了这个getPhoneNumber接口,能用吗?怎么用才合规呢? https://developers.weixin.qq.com/minigame/dev/api-backend/open-api/phonenumber/phonenumber.getPhoneNumber.html
微信小游戏能调用getPhoneNum吗?https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/getPhoneNumber.html 用这个API只支持微信小程序吗,能否支持微信小游戏
2022-09-22iOS端一直有这个问题
横屏状态下onCameraFrame为什么是按竖屏比例裁剪的?页面设置横屏,onCameraFrame获取到的视频帧是按竖屏比例裁剪过的,导致视频帧不完整,请问有办法解决吗
2022-08-03视频切换为全屏后能自由切换横竖屏、左右横屏,这不算问题 视频退出全屏时没恢复原来的屏方向才是主要问题 (或者提供api设置屏幕方向也行,目前没有这种api)
固定横屏的小游戏,在iOS真机上播放视频时,切换全屏后能横竖屏切换+左右横屏切换1.iPhone7,iOS15.3.1 2.测试的小游戏配置为固定屏幕方向landscapeRight 3.使用接口wx.createVideo创建自动播放的视频(http://xxx.xxx.xxx/xxx.mp4) .将视频切换为全屏后, 发现可以自由切换横竖屏、左右横屏 .视频退出全屏时,屏幕方向不会自动切回landscapeRight,会遗留在之前的屏幕方向上,这回导致小游戏画面变形+错乱 .视频退出全屏后,如果屏幕方向不是landscapeRight, 则用户可以手动转屏1次, 且只能转回landscapeRight
2022-02-25https://developers.weixin.qq.com/community/develop/doc/00080caf6c04505dd0da0ad6d5b014 官方说解决了,但实际仍然存在 解决方法是在新相机调Camera.listenFrameChange前先调下Camera.closeFrameChange
相机销毁后,第二次创建相机onCameraFrame回调函数不执行startShowCamera() { if (cc.sys.platform === cc.sys.WECHAT_GAME) { var size = "small" if (hf.dataMgr.gameRecordQuality === hf.constants.GAME_RECORD_QUALITY.MID) { size = "medium" } else if (hf.dataMgr.gameRecordQuality === hf.constants.GAME_RECORD_QUALITY.HIGH) { size = "large" } var camera = wx.createCamera({ x: 0, y: 0, width: 1, height: 1, devicePosition: "front", size: size, success: () => { cc.log("CameraDisplay startShowCamera Success") this.startListener() this.m_openCb && this.m_openCb() }, fail: (err) => { cc.log("CameraDisplay startShowCamera Fail", err) } }) this.m_camera = camera } }, closeCamera() { if (this.m_camera) { if (cc.sys.platform === cc.sys.WECHAT_GAME) { this.m_camera.destroy() this.m_camera = undefined } } this.fullSp.node.active = false this.quarterSp.node.active = false this.m_tex = undefined }, startListener() { var camera = this.m_camera camera.onCameraFrame((frameObj) => { if (this.m_tex) { var data = new Uint8Array(frameObj.data) this.m_tex.initWithData(data, cc.Texture2D.PixelFormat.RGBA8888, frameObj.width, frameObj.height) this.m_tex.handleLoadedTexture() } }) camera.listenFrameChange() } 代码如上图所示,我每次调用startShowCamera开启相机后,使用完成会destroy销毁,中间需要调用onCameraFrame监听帧变化。 只有第一次调用后,能监听到onCameraFrame回调函数帧变化,相机销毁后再次创建新的相机再也无法监听到帧数据。 我这边能确认的是,wx.createCamera函数调用后,每次都有success回调,也就是我的startListener函数里面的listenFrameChange这些都是执行了。但是不起作用。而且我能确认摄像头确实是打开的。
2022-01-14https://developers.weixin.qq.com/minigame/dev/reference/configuration/app.html deviceOrientation 的合法值 portrait, 竖屏。不随用户手机的旋转而旋转。 landscape, home 键在屏幕右侧的横屏。当用户的手机没有锁定屏幕方向时,横屏的方向会随着手机的旋转而旋转。 landscapeLeft, home 键在屏幕左侧的横屏 微信客户端 7.0.0 landscapeRight, home 键在屏幕右侧的横屏 微信客户端 7.0.0 wx.onDeviceOrientationChange https://developers.weixin.qq.com/minigame/dev/api/device/orientation/wx.onDeviceOrientationChange.html https://github.com/wechat-miniprogram/minigame-demo/blob/master/miniprogram/game.json 官方“小游戏示例”配置的是portrait模式,按文档说明,它应该固定竖屏,不会横竖屏切换、也不会左右横屏切换。 (按文档,小游戏只有在配置为landscape模式时才能左右横屏切换,其它情况都是固定屏幕方向) iOS实测官方“小游戏示例”,1: 1.确保系统未锁屏,微信未打开。 2.手机平放桌面,打开微信,打开官方“小游戏示例”,进入“设备\横竖屏切换” 3.拿起手机,尝试将手机转换到横屏姿态,屏幕上出现“触发成功”提示,但屏幕保持竖屏。 4.继续尝试横竖屏切换或左右横屏切换,不再出现“触发成功”提示。 5.手机平放桌面,从小程序菜单选择“重新进入小程序”,重复3、4,结果一样。 (修改“小游戏示例”源码,将提示内容换成wx.onDeviceOrientationChange的返回值,发现上述“触发成功”提示出现时返回的屏幕方向是portrait) 测试过程出现了1次“触发成功”提示,严格来讲算bug,但问题不大 iOS实测官方“小游戏示例”,2: 1.确保系统已锁屏,微信未打开。 2.手机平放桌面,打开微信,打开官方“小游戏示例”,进入“设备\横竖屏切换” 3.拿起手机,尝试横竖屏切换或左右横屏切换,无任何提示,屏幕保持竖屏。 表现正常,符合预期 iOS实测配置为landscape的横屏小游戏: 锁屏时不能左右横屏切换,无转屏事件。表现正常,符合预期 不锁屏时,能左右横屏切换,能收到转屏事件。但存在bug: .点击屏幕右上角微信胶囊菜单中"⦿"按钮回到微信,然后在微信小程序列表中点击小游戏,这时返回小游戏后屏幕会保持原样,但却会收到1次portrait转屏事件; .上面返回小游戏后,偶尔会出现没有portrait转屏事件, 也不再有任何转屏事件的情形 Android实测官方“小游戏示例”,1: 1.确保系统未锁屏,微信未打开。 2.手机平放桌面,打开微信,打开官方“小游戏示例”,进入“设备\横竖屏切换” 3.拿起手机,尝试横竖屏切换或左右横屏切换,无任何提示,屏幕保持竖屏。 表现正常,符合预期 Android实测官方“小游戏示例”,2: 1.确保系统已锁屏,微信未打开。 2.手机平放桌面,打开微信,打开官方“小游戏示例”,进入“设备\横竖屏切换” 3.拿起手机,尝试横竖屏切换或左右横屏切换,无任何提示,屏幕保持竖屏。 表现正常,符合预期 Android实测配置为landscape的横屏小游戏: 不锁屏时,能左右横屏切换,收不到转屏事件。(应该能收到转屏事件) 锁屏时,仍能左右横屏切换,无转屏事件。(不应该能左右横屏切换) 存在bug.
横屏切换时wx.onDeviceOrientationChange收不到转屏事件在将微信小游戏项目配置为landscape横屏模式后,安卓上无论锁屏与否,都能左右横屏切换。但wx.onDeviceOrientationChange收不到任何回调。 https://developers.weixin.qq.com/minigame/dev/reference/configuration/app.html [图片] https://developers.weixin.qq.com/minigame/dev/api/device/orientation/wx.onDeviceOrientationChange.html[图片]
2021-12-03wx.startDeviceMotionListening https://developers.weixin.qq.com/minigame/dev/api/device/motion/wx.startDeviceMotionListening.html wx.onDeviceMotionChange https://developers.weixin.qq.com/minigame/dev/api/device/motion/wx.onDeviceMotionChange.html 我没遇到你这样的问题,可能是你start、stop传感器存在混乱导致的。 wx.startDeviceMotionListening的interval参数的合法值有: game 适用于更新游戏的回调频率,在 20ms/次 左右 ui 适用于更新 UI 的回调频率,在 60ms/次 左右 normal 普通的回调频率,在 200ms/次 左右 细节1: 如果你不调用wx.startDeviceMotionListening,而是直接调用wx.onDeviceMotionChange 你也能得到数据,但数据的刷新频率和normal级别相当 这种情况应该是系统按interval参数默认值normal自动启动了传感器 细节2: 如果你以normal频率start了传感器,再以game频率start了传感器 则数据刷新频率仍为normal级别 因为你没有stop传感器先
wx.onDeviceMotionChange 性能特别差,能否达到H5中效果?测试使用wx.onDeviceMotionChange制作720度浏览效果,发现安卓手机固定时,获取的值一直抖动,非常不稳定;iphone6s 特别卡,手机移动后过很长时间才返回值。 不是很明白为啥wx.onDeviceMotionChange性能如此差,跟浏览器获得的deviceorientation 的值完全没法比;讲道理原生获取的设备数据应该更加优秀才对;希望官方改进该接口,最起码能达到浏览器的效果吧
2021-12-03wx.startDeviceMotionListening https://developers.weixin.qq.com/minigame/dev/api/device/motion/wx.startDeviceMotionListening.html wx.onDeviceMotionChange https://developers.weixin.qq.com/minigame/dev/api/device/motion/wx.onDeviceMotionChange.html iOS上的表现的确和Android不同,可直接搜索"小游戏示例"做测试。 先做几个定义------------------ 手机坐标系: 手机平方桌面,出屏方向+Z轴,手机右侧+X轴,手机头部+Y轴(右手坐标系) 旋转方法: 逆着旋转轴朝向看向旋转目标,然后实施"顺时针旋转"或"逆时针旋转" 手机标准姿态: alpha,beta,gamma全0时的手机姿态 Android手机实测结果----------- 沿+Z轴顺时针旋转360度,alpha:0 -> 90 ->180 ->270 -> 360 沿+X轴顺时针旋转360度,beta :0 -> 90 -> 0 -> -90 -> 0 沿+Y轴顺时针旋转360度,gamma: 0 -> 90 -> 180(-180) -> -90 -> 0 手机标准姿态是固定的: 手机平放桌面,头部朝北 iOS手机实测结果--------------- 沿+Z轴逆时针旋转360度,alpha:0 -> 90 ->180 ->270 -> 360 沿+X轴逆时针旋转360度,beta :0 -> 90 -> 0 -> -90 -> 0 沿+Y轴逆时针旋转360度,gamma: 0 -> 90 -> 180(-180) -> -90 -> 0 手机标准姿态是动态的,按以下步骤可得到: .将启动传感器(wx.startDeviceMotionListening)瞬间的手机姿态投影到水平面 .若投影后手机屏幕朝地,沿X轴旋转180度让屏幕朝上 结论-------------------------- 1.iOS与Android的旋转方向正好相反 2.iOS的数据不含东南西北朝向
屏幕旋转onDeviceMotionChange苹果bug,并且安卓与苹果相反。[图片] - 当前 Bug 的表现 在ios设备上,在什么方向开始监听的便默认该方向为0。例如:我从侧向点开始监听,便认为侧向为0。 在正常进入的情况下(竖屏正向)安卓与苹果的数据是相反的。 - 预期表现 ios无论在什么方向进来都可以显示该方向固定的值。 Android和ios的方向数据是一致的。 - 复现路径 wechatide://minicode/lLSkRAmT7B31 - 提供一个最简复现 Demo wechatide://minicode/lLSkRAmT7B31
2021-12-02