Setelah menambahkan MSS SDK, Anda perlu mengonfigurasi proyek sebelum mulai menggunakannya.
Catatan Per 28 Juni 2020, mPaaS tidak lagi memelihara baseline 10.1.32. Gunakan seri baseline 10.1.68 atau 10.1.60 sebagai gantinya. Untuk melakukan upgrade baseline Anda, lihat mPaaS 10.1.68 Upgrade Guide atau mPaaS 10.1.60 Upgrade Guide. |
Prasyarat
Pastikan Anda menggunakan SDK versi 10.1.32 atau yang lebih baru.
Anda dapat menemukan versi SDK saat ini di file mpaas_sdk.config.

Konfigurasi proyek
Pastikan file meta.config ada di dalam proyek Anda. File ini berisi informasi konfigurasi, seperti titik akhir dan port layanan Sync.
Jika Anda menggunakan Plugin terbaru untuk menambahkan Sync SDK, file ini akan dibuat secara otomatis.
Jika file
meta.configtidak ada di proyek Anda,buka halaman Console > Code Management > Code Configuration untuk mengunduh file konfigurasi
.config. Kemudian, ubah nama file tersebut menjadimeta.configdan tambahkan ke proyek Anda.
Catatan untuk upgrade dari versi sebelumnya
Versi yang lebih baru dari 10.1.32 tidak memerlukan file Category untuk kelas DTSyncInterface. Sebagai gantinya, lapisan tengah membaca konfigurasi dari file meta.config. Setelah melakukan upgrade, periksa proyek Anda dan hapus konfigurasi lama tersebut.

Contoh kode
Untuk mendengarkan event sinkronisasi, buat sebuah kelas. Layanan yang berada di RAM sangat cocok untuk terus-menerus mendengarkan pesan Sync. Pada contoh berikut, kelas MySyncService dibuat untuk mendengarkan event sinkronisasi.
Sebelum mendengarkan event sinkronisasi, definisikan nama identitas bisnis. Nama ini sesuai dengan identitas konfigurasi sinkronisasi di konsol sinkronisasi data. Parameter ini mengidentifikasi klien Anda ke layanan. Pada contoh berikut, nama identitas bisnis adalah SYNC-TRADE-DATA.
#import <MPMssAdapter/MPSyncInterface.h>
#define SYNC_BIZ_NAME @"SYNC-TRADE-DATA"
@implementation MySyncService
+ (instancetype)sharedInstance
{
static MySyncService *bizService;
static dispatch_once_t llSOnceToken;
dispatch_once(&llSOnceToken, ^{
bizService = [[self alloc] init];
});
return bizService;
}
-(instancetype)init
{
self = [super init];
if (self) {
[MPSyncInterface initSync];
BOOL registerSingleDeviceSync = [MPSyncInterface registerSyncBizWithName:SYNC_BIZ_NAME syncObserver:self selector:@selector(revSyncBizNotification:)];
[MPSyncInterface bindUserWithSessionId:@"SESSION_DEMO"]; // User sesuai dengan userId yang diperlukan saat mengirim perintah dari konsol, dan harus sesuai dengan nilai pada fungsi userId MPaaSInterface. sessionId adalah token otorisasi klien. Kedua nilai userId dan sessionId dikembalikan saat pengguna login. Jika salah satu nilai berubah, panggil fungsi ini lagi untuk membuat ulang koneksi persisten.
}
return self;
}
-(void)revSyncBizNotification:(NSNotification*)notify
{
NSDictionary *userInfo = notify.userInfo;
dispatch_async(dispatch_get_main_queue(), ^{
// Proses data bisnis
[MySyncService handleSyncData:userInfo];
// Callback ke Sync SDK untuk menandakan bahwa data bisnis telah diproses.
[MPSyncInterface responseMessageNotify:userInfo];
});
}
+(void)handleSyncData:(NSDictionary *)userInfo
{
NSString * stringOp = userInfo[@"op"];
NSArray *op = [NSJSONSerialization JSONObjectWithData:[stringOp dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingMutableContainers error:nil];
if([op isKindOfClass:[NSArray class]]){
[op enumerateObjectsUsingBlock:^(NSDictionary * item, NSUInteger idx, BOOL *stop) {
if([item isKindOfClass:[NSDictionary class]]){
NSString * plString = item[@"pl"];// muatan data bisnis
if(item[@"isB"]){
NSData *dataPl = [[NSData alloc] initWithBase64EncodedString:plString options:kNilOptions];
NSString *pl = [[NSString alloc] initWithData:dataPl encoding:NSUTF8StringEncoding];
NSLog(@"biz payload data:%@,string:%@",dataPl,pl);
}else{
NSLog(@"biz payload:%@",plString);
}
}
}];
}
}
-(void)dealloc
{
BOOL unRegisterSingleDeviceSync = [MPSyncInterface unRegisterSyncBizWithName:SYNC_BIZ_NAME syncObserver:[MySyncService sharedInstance]];
[MPSyncInterface removeSyncNotificationObserver:self];
}
@end