如何判断快应用是否是运行在HarmonyOS鸿蒙Next华为手机上

如何判断快应用是否是运行在HarmonyOS鸿蒙Next华为手机上

背景

华为快应用有自己单独的运行引擎,但是有些能力华为快应用还不支持,我想在我代码中判断一下,如果是华为手机,就不调用这个接口了,有办法做到吗?

解决方法

通过咨询华为快应用技术支持,发现可以通过快应用的device.getInfo(OBJECT)接口返回的engineProvider判断,该字段是华为拓展的(联盟快应用接口没有返回),代表快应用引擎的提供商,华为手机上会返回"huawei"device接口文档链接如下:

https://developer.huawei.com/consumer/cn/doc/development/quickApp-References/quickapp-api-device#getInfo

示例代码如下:

getDeviceInfo: function () {
    var that = this
    device.getInfo({
        success: function (ret) {
            that.deviceInfo = JSON.stringify(ret)
            if (that.deviceInfo.indexOf('engineProvider') >= 0 && that.deviceInfo.indexOf('huawei') >= 0) {
                that.isHuawei = true
            } else {
                that.isHuawei = false
            }
        },
        fail: function (errorMsg, errorCode) {
            that.deviceInfo = errorCode + ': ' + errorMsg
        }
    })
},
6 回复
多写一些,也许会更好  

更多关于如何判断快应用是否是运行在HarmonyOS鸿蒙Next华为手机上的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


好棒呀,写的可以啦

非常不错啊,写的好棒

可以呀,写的真好

已经转了,让更多的人看到它

要判断快应用是否运行在HarmonyOS鸿蒙Next华为手机上,可以通过以下方法:

  1. 系统信息检测:使用system.info API获取设备信息,检查osName是否为HarmonyOSosVersion是否符合鸿蒙Next版本。

  2. 设备型号检测:通过device.branddevice.model API获取设备品牌和型号,确认是否为华为设备。

  3. 环境变量检测:检查process.env中的环境变量,确认是否包含鸿蒙Next特有的标识。

  4. API兼容性检测:调用鸿蒙Next特有的API,如huawei.xxx,确认是否存在。

通过这些方法,可以准确判断快应用是否运行在HarmonyOS鸿蒙Next华为手机上。

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!