uni-app APP 查询ICCID

发布于 1周前 作者 eggper 来自 Uni-App

uni-app APP 查询ICCID

查询ICCID

3 回复

可以做 专业插件开发 q 1196097915 主页 https://ask.dcloud.net.cn/question/91948


联系:18968864472(同微)

在uni-app中查询设备的ICCID(集成电路卡识别码)通常涉及到与原生代码进行交互,因为uni-app本身是基于Vue.js的多端框架,不直接暴露设备硬件级别的接口。不过,你可以通过编写原生插件或使用已有的原生模块来实现这一功能。

以下是一个基于uni-app和原生插件的示例,展示了如何在Android和iOS平台上查询ICCID。

1. 创建原生插件

Android端

首先,在native-plugins目录下创建一个名为ICCIDPlugin的插件。

ICCIDPlugin.java

package com.example.iccidplugin;

import android.telephony.TelephonyManager;
import io.dcloud.feature.uniapp.bridge.UniJSCallback;
import io.dcloud.feature.uniapp.common.UniModule;
import android.content.Context;

public class ICCIDPlugin extends UniModule {
    @Override
    public String getName() {
        return "ICCIDPlugin";
    }

    public void getICCID(UniJSCallback callback) {
        try {
            TelephonyManager telephonyManager = (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
            String iccid = telephonyManager.getSimSerialNumber();
            callback.invoke(iccid);
        } catch (Exception e) {
            callback.invokeAndKeepAlive(new Object[]{"Error: " + e.getMessage()});
        }
    }
}

iOS端

在iOS项目中,创建一个名为ICCIDPlugin的Objective-C或Swift类。

ICCIDPlugin.m

#import <Foundation/Foundation.h>
#import <UniAppPlugin/UniModule.h>
#import <CoreTelephony/CoreTelephony.h>

@interface ICCIDPlugin : UniModule

- (void)getICCID:(UniJSCallback *)callback;

@end

@implementation ICCIDPlugin

- (NSString *)getName {
    return @"ICCIDPlugin";
}

- (void)getICCID:(UniJSCallback *)callback {
    CTTelephonyNetworkInfo *networkInfo = [[CTTelephonyNetworkInfo alloc] init];
    NSString *iccid = [networkInfo simSerialNumber];
    [callback invoke:iccid];
}

@end

2. 在uni-app中使用插件

在你的uni-app项目中,通过manifest.json配置引入这个插件,并在JavaScript代码中调用。

manifest.json

"nativePlugins": [
    {
        "plugins": {
            "ICCIDPlugin": {
                "package": "com.example.iccidplugin",
                "version": "1.0.0",
                "provider": "your_provider"
            }
        }
    }
]

在JavaScript中调用

const iccidPlugin = uni.requireNativePlugin('ICCIDPlugin');
iccidPlugin.getICCID((result) => {
    console.log('ICCID:', result);
});

这样,你就可以在uni-app应用中查询设备的ICCID了。注意,这些代码片段是示例性质的,实际应用中需要根据具体需求和环境进行调整。

回到顶部