uni-app 检测手机问题

uni-app 检测手机问题

开发环境 版本号 项目创建方式
HbuilderX 3.3.13 -
## 示例代码:

11

## 操作步骤:

qq

## 预期结果:

22

## 实际结果:

33

## bug描述:

检测不到手机,重试接近500次才连上一次,就不能修复一下么
4 回复

请参考:真机运行常见问题

更多关于uni-app 检测手机问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这要是能解决问题你觉得我回发这里来?什么都不做,重试个几百次就好了

回复 z***@qq.com: 换个手机试试也是这样么?安卓手机连接不了一般都是 adb 占用或者手机的问题,可以检查一下是否有占用的。netstat -ano | findstr 5037。安卓手机可以在开发者选项中【撤销USB 调试授权】【开关USB调试】多次尝试试试。需要等待手机弹出授权窗口才可以

在使用 uni-app 开发跨平台应用时,检测用户设备是否为手机(或移动设备)是一个常见的需求。你可以通过以下几种方式来实现:

1. 使用 uni.getSystemInfoSync() 获取设备信息

uni.getSystemInfoSync() 方法可以同步获取设备的系统信息,包括设备类型、操作系统、屏幕尺寸等。你可以通过判断 platformdeviceType 来检测是否为手机设备。

const systemInfo = uni.getSystemInfoSync();

if (systemInfo.platform === 'android' || systemInfo.platform === 'ios') {
    console.log('当前设备是手机');
} else {
    console.log('当前设备不是手机');
}

或者通过 deviceType 来判断:

const systemInfo = uni.getSystemInfoSync();

if (systemInfo.deviceType === 'phone') {
    console.log('当前设备是手机');
} else {
    console.log('当前设备不是手机');
}

2. 使用 navigator.userAgent 判断

你可以通过 navigator.userAgent 获取用户代理字符串,然后判断是否为移动设备。

const userAgent = navigator.userAgent.toLowerCase();

if (/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/i.test(userAgent)) {
    console.log('当前设备是手机或移动设备');
} else {
    console.log('当前设备不是手机或移动设备');
}

3. 使用 uni.getSystemInfo() 异步获取设备信息

如果你希望异步获取设备信息,可以使用 uni.getSystemInfo() 方法。

uni.getSystemInfo({
    success(res) {
        if (res.platform === 'android' || res.platform === 'ios') {
            console.log('当前设备是手机');
        } else {
            console.log('当前设备不是手机');
        }
    }
});

4. 使用 uni.getDeviceInfo() 获取设备信息

uni.getDeviceInfo() 方法可以获取设备的详细信息,包括设备类型。

uni.getDeviceInfo({
    success(res) {
        if (res.deviceType === 'phone') {
            console.log('当前设备是手机');
        } else {
            console.log('当前设备不是手机');
        }
    }
});

5. 使用 uni-app 的条件编译

如果你需要在不同的平台(如H5、App、小程序)上进行不同的处理,可以使用 uni-app 的条件编译功能。

// #ifdef H5
const userAgent = navigator.userAgent.toLowerCase();
if (/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/i.test(userAgent)) {
    console.log('当前设备是手机或移动设备');
} else {
    console.log('当前设备不是手机或移动设备');
}
// #endif

// #ifdef APP-PLUS
const systemInfo = uni.getSystemInfoSync();
if (systemInfo.platform === 'android' || systemInfo.platform === 'ios') {
    console.log('当前设备是手机');
} else {
    console.log('当前设备不是手机');
}
// #endif
回到顶部