Topik ini menjelaskan cara menginisialisasi Link SDK untuk iOS guna membangun koneksi antara perangkat dan IoT Platform.
Informasi latar belakang
Link SDK untuk iOS hanya mendukung metode verifikasi sertifikat-unik-per-perangkat. Untuk informasi lebih lanjut, lihat Verifikasi Sertifikat-Unik-Per-Perangkat.
Inisialisasi IoT Platform SDK untuk Java
Contoh kode:
#import <IotLinkKit/IotLinkKit.h>
// Sebelum Anda menginisialisasi SDK, Anda harus membuat pendengar untuk memantau perubahan status koneksi persisten.
[[LinkKitEntry sharedKit] registerChannelListener:self];
//// Tentukan informasi sertifikat perangkat.
self.productKey = self.textFieldProductKey.text ;
self.deviceName = self.textFieldDeviceName.text ;
self.deviceSecret = self.textFieldDeviceSecret.text;
LinkkitChannelConfig * channelConfig = [[LinkkitChannelConfig alloc] init];
channelConfig.productKey = self.productKey;
channelConfig.deviceName = self.deviceName;
channelConfig.deviceSecret = self.deviceSecret;
channelConfig.cleanSession = (self.cleanSession == 1);
//channelConfig.server = @"your custom server url";
//channelConfig.port = 1883;
LinkkitSetupParams * setupParams = [[LinkkitSetupParams alloc] init];
setupParams.appVersion = self.appVersion;
setupParams.channelConfig = channelConfig;
[[LinkKitEntry sharedKit] setup:setupParams resultBlock:^(BOOL succeeded, NSError * _Nullable error) {
LinkkitLogDebug(@"setup error : %@", error);
dispatch_async(dispatch_get_main_queue(), ^{
[self ims_showHUDWithMessage:[NSString stringWithFormat:@ "Inisialisasi :%@",
succeeded ? @ "Berhasil" : @ "Gagal"]];
});
}];
Setelah Anda menginisialisasi SDK,
resultBlockakan dikembalikan terlepas dari apakah koneksi Message Queuing Telemetry Transport (MQTT) persisten telah dibuat atau tidak.Anda dapat memanggil fungsi
[[LinkKitEntry sharedKit] registerChannelListener:self]untuk memeriksa apakah koneksi persisten telah dibuat berdasarkan hasil yang dikembalikan oleh fungsi callback[onConnectStateChange:state:].
Parameter
Parameter | Contoh | Deskripsi |
productKey | a18wP****** | Anda dapat melihat sertifikat perangkat di halaman Device Details di konsol IoT Platform. Untuk informasi lebih lanjut, lihat Dapatkan informasi verifikasi perangkat. |
deviceName | LightSwitch | |
deviceSecret | uwMTmVAMnGGHaAkqmeDY6cHxxB****** | |
server | a18wP******.iot-as-mqtt.cn-shanghai.aliyuncs.com | Titik akhir ke mana Anda ingin menyambungkan perangkat.
|
Deinisialisasi SDK
Sebelum men-deinisialisasi SDK, tutup koneksi MQTT persisten antara perangkat dan IoT Platform. Untuk men-deinisialisasi SDK, panggil operasi API berikut.
[[LinkKitEntry sharedKit] destroy:^(BOOL succeeded, NSError * _Nullable error) {
LinkkitLogDebug(@"kit destroy error : %@", error);
dispatch_async(dispatch_get_main_queue(), ^{
[self ims_showHUDWithMessage:[NSString stringWithFormat:@ "Deinisialisasi: %@",
succeeded ? @ "Berhasil" : @ "Gagal"]];
});
}];
Saklar log
Aktifkan saklar keluaran log internal SDK:
#import <IMSLog/IMSLog.h>
NSString * const IMS_DEMO_TAG = @"LinkkitDemo";
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Tambahkan kode berikut untuk mengaktifkan fitur logging.
[IMSLog setAllTagsLevel:IMSLogLevelAll];
// Buat panel log dan tambahkan ke kerangka log.
//[IMSLog addAssistant:[[IMSDashboardLogAssistant alloc] init]];
// Aktifkan log agar ditampilkan di konsol.
[IMSLog showInConsole:YES];
// Tentukan tag log.
[IMSLog registerTag:IMS_DEMO_TAG];
return YES;
}
Buat pendengar untuk memantau perubahan status koneksi MQTT persisten.
Contoh kode:
- (void)onConnectStateChange:(nonnull NSString *)connectId state:(LinkkitChannelConnectState)state {
NSString * connectTip = nil;
if (state == LinkkitChannelStateConnected) {
connectTip = @ "Terkoneksi";
} else if (state == LinkkitChannelStateDisconnected) {
connectTip = @ "Tidak terkoneksi";
} else {
connectTip = @ "Menghubungkan";
}
dispatch_async(dispatch_get_main_queue(), ^{
self.labelConnectState.text = connectTip;
});
}
- (void)onNotify:(nonnull NSString *)connectId topic:(nonnull NSString *)topic data:(id _Nullable)data {
NSString * downData = [NSString stringWithFormat:@ "Data yang didorong diterima, topik :%@ \r\n", topic];
downData = [downData stringByAppendingString:[NSString stringWithFormat:@ "\r \ndata :%@", data]];
LinkkitLogDebug(@"kit recv topik : %@", topic);
dispatch_async(dispatch_get_main_queue(), ^{
self.textViewDownData.text = downData;
});
}
- (BOOL)shouldHandle:(nonnull NSString *)connectId
topic:(nonnull NSString *)topic {
return YES;
}