すべてのプロダクト
Search
ドキュメントセンター

Mobile Platform as a Service:SDK の使用

最終更新日:Jan 17, 2025

重要: 2020 年 6 月 28 日以降、mPaaS はベースライン 10.1.32 のサポートを停止しました。10.1.68 または 10.1.60 を代わりに使用してください。ベースラインをバージョン 10.1.32 から 10.1.68 または 10.1.60 にアップグレードする方法については、「mPaaS 10.1.68 アップグレードガイド」または「mPaaS 10.1.60 アップグレードガイド」をご参照ください。

MSS SDK を追加した後、SDK を使用する前にプロジェクトを構成する必要があります。

前提条件

SDK バージョンは 10.1.32 以降です。

: 現在の SDK バージョンは、mpaas_sdk.config ファイルで確認できます。

 View the SDK version for iOS

プロジェクトの構成

MSS アドレスとポート番号を含む meta.config ファイルがプロジェクトに追加されていることを確認します。

  • 最新のプラグインを使用して MSS SDK を追加した場合、ファイルは自動的に生成されます。

  • プロジェクトに meta.config ファイルが含まれていない場合は、mPaaS コンソールにログインし、[概要] > [コード構成] を選択して、.config ファイルをダウンロードし、meta.config に名前を変更して、プロジェクトに追加します。

    meta_config

アップグレードの注意事項

Category クラスの DTSyncInterface ファイルは、バージョン 10.1.32 以降は追加する必要はありません。中間層は meta.config からのパッケージ読み取りを実装します。アップグレード後、プロジェクトに以前のバージョンの構成があるかどうかを確認します。ある場合は削除します。次の図は、アップグレードされたバージョンから削除される Category クラスの DTSyncInterface ファイルを示しています。

Configure a project

コードサンプル

同期サービスを listen するロジックを実現するには、同期メッセージを listen するクラス (できればメモリ常駐サービス) を作成する必要があります。次のコードサンプルでは、同期サービスを listen する MySyncService クラスを作成します。

同期サービスを listen する前に、同期サービスの同期 ID を定義する必要があります (同期 ID は、mPaaS コンソールでプッシュ構成を作成するときにも使用されます)。この同期 ID は、ユーザーとサービスプロバイダー間のリンクです。次の例の同期 ID は 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** はコンソールで指定した userId に対応します。コンソールがコマンドを配信するターゲットを指定し、値は MPaaSInterface の userId 関数で設定された値と同じである必要があります。**SessionId** は、クライアントによって伝送される認証トークンを指定します。ユーザーログインシステムは、userId と sessionId の両方を返します。いずれかが変更された場合は、永続的な接続が正しく設定されていることを確認するために、この関数を再度呼び出す必要があります。
    }
    return self;
}

-(void)revSyncBizNotification:(NSNotification*)notify
{
    NSDictionary *userInfo = notify.userInfo;
    dispatch_async(dispatch_get_main_queue(), ^{
        // ビジネスデータを処理します。
        [MySyncService handleSyncData:userInfo];
        // SyncSDK をコールバックして、ビジネスデータが処理されたことを示します。
        [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"]; // ビジネスデータのペイロード
                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

次の手順