H***@geely.com
H***@geely.com
  • 发布:2024-09-24 15:25
  • 更新:2024-09-29 10:04
  • 阅读:92

【报Bug】native.js 中的isiOSAppOnMac 属性在 iOS 18 中不存在

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: macOS 13.5 (22G74)

HBuilderX类型: 正式

HBuilderX版本号: 4.24

手机系统: iOS

手机系统版本号: iOS 18

手机厂商: 苹果

手机机型: iPhone 12

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
const NSProcessInfo = plus.ios.importClass('NSProcessInfo')  
console.log('NSProcessInfo:', NSProcessInfo)  
const processInfo = NSProcessInfo.processInfo()  
console.log('processInfo:', processInfo)  
const isiOSAppOnMac = processInfo.isiOSAppOnMac()  
console.log('isiOSAppOnMac:', isiOSAppOnMac)

报错如下:
TypeError: processInfo.isiOSAppOnMac is not a function. (In 'processInfo.isiOSAppOnMac()', 'processInfo.isiOSAppOnMac' is undefined)

操作步骤:
const NSProcessInfo = plus.ios.importClass('NSProcessInfo')  
console.log('NSProcessInfo:', NSProcessInfo)  
const processInfo = NSProcessInfo.processInfo()  
console.log('processInfo:', processInfo)  
const isiOSAppOnMac = processInfo.isiOSAppOnMac()  
console.log('isiOSAppOnMac:', isiOSAppOnMac)

预期结果:

期望processInfo.isiOSAppOnMac()返回 true 或 false

实际结果:

抛出异常

bug描述:

native.js 中的isiOSAppOnMac 属性在 iOS 18 中不存在了

2024-09-24 15:25 负责人:无 分享
已邀请:
DCloud_App_Array

DCloud_App_Array

native.js调用的是系统API,请查找苹果官方网站寻找替代API。

H***@geely.com

H***@geely.com (作者)

iOS 原生开发中对应的 api 是let isiOSAppOnMac = ProcessInfo.processInfo.isiOSAppOnMac。报告的问题就是下面的代码在 iOS 17 上是能正常执行的,不会抛出异常。但是在 iOS18 上会抛出异常。并且我用 iOS 原生开发写了个demo,在 iOS18 上调用let isiOSAppOnMac = ProcessInfo.processInfo.isiOSAppOnMac 是能正常执行的。

const NSProcessInfo = plus.ios.importClass('NSProcessInfo')    
console.log('NSProcessInfo:', NSProcessInfo)    
const processInfo = NSProcessInfo.processInfo()    
console.log('processInfo:', processInfo)    
const isiOSAppOnMac = processInfo.isiOSAppOnMac()    
console.log('isiOSAppOnMac:', isiOSAppOnMac)

要回复问题请先登录注册