WindVane または uni-app ミニアプリコンテナーをネイティブアプリに統合した後、ミニアプリの検索、ミニアプリリストの取得、またはミニアプリの起動を行うことができます。
ミニアプリリストを取得する
ミニアプリコンテナー SDK は、ミニアプリリストを取得するためのインターフェイスを提供します。ミニアプリリストのみを取得する場合は、このインターフェイスを直接使用できます。
id<EMASMiniAppService> miniAppService = [[EMASServiceManager sharedInstance] serviceForProtocol:@"EMASMiniAppService"];
if (miniAppService) {
// anchor パラメーターのデフォルト値は 0 です。
[miniAppService getMiniAppList:anchor completionBlock:^(int resultCode, NSArray * _Nonnull miniApps, NSString *anchor) {
// resultCode の値が 200 の場合、すべてのミニアプリが取得されます。
// ミニアプリのリストを返します。デフォルトでは、最大 10 個のミニアプリを取得できます。 anchor パラメーターは、より多くのミニアプリを取得するために使用されます。
}];
}ミニアプリを検索する
ミニアプリコンテナー SDK は、ミニアプリを検索するためのインターフェイスを提供します。ミニアプリのみを検索する場合は、このインターフェイスを直接使用できます。
id<EMASMiniAppService> miniAppService = [[EMASServiceManager sharedInstance] serviceForProtocol:@"EMASMiniAppService"];
if (miniAppService) {
// keyword パラメーターは検索キーワードを指定します。 anchor パラメーターのデフォルト値は 0 です。
[miniAppService queryMiniApps:keyword anchor:anchor completionBlock:^(int resultCode, NSArray * _Nonnull miniApps, NSString *anchor) {
// resultCode の値が 200 の場合、検索は成功です。
// 検索結果を返します。デフォルトでは、最大 10 個のミニアプリを取得できます。 anchor パラメーターは、より多くのミニアプリを取得するために使用されます。
}];
}ミニアプリを起動する
ID を使用してミニアプリを起動できます。 WindVane ミニアプリと uni-app ミニアプリは同じ方法で起動できます。ミニアプリの読み込みには一定の時間がかかります。 UI 要素を初期化または更新するために、関連するコールバックメソッドにコードを追加することをお勧めします。
id<EMASMiniAppService> miniAppService = [[EMASServiceManager sharedInstance] serviceForProtocol:@"EMASMiniAppService"];
if (miniAppService) {
[miniAppService openMiniApp:appId openConfiguration:nil completionBlock:^(int resultCode, NSDictionary * _Nonnull resultDict) {
}];
}ミニアプリ内の特定のページを開く
ミニアプリを起動するときは、path パラメーターを設定してミニアプリ内の特定のページを開き、extraData を使用してページに引数を渡すことができます。
uni-app ミニアプリの場合、path パラメーターはミニアプリページの絶対 URL を指定し、extraData はミニアプリに起動引数を渡すために使用される JSON オブジェクトです。ミニアプリの起動後、plus.runtime.arguments メソッドを使用して extraData から値を取得できます。
WindVane ミニアプリ内のページを開くには、次の形式の URL にアクセスできます。 https://{appId}.app.mini.windvane.suite.emas.alibaba.com/index.html#/{path}?key=value&key2=123。ミニアプリを開発するときは、ハッシュルーティングを使用してページナビゲーションのロジックを処理する必要があります。
id<EMASMiniAppService> miniAppService = [[EMASServiceManager sharedInstance] serviceForProtocol:@"EMASMiniAppService"];
if (miniAppService) {
EMASMiniAppOpenConfiguration *config = [[EMASMiniAppOpenConfiguration alloc] init];
if (path.length > 0) {
// ディープリンクパス。
config.path = path;
}
if (params){
// 拡張パラメーター。
config.extraData = params;
}
[miniAppService openMiniApp:self.appId openConfiguration:config completionBlock:^(int resultCode, NSDictionary * _Nonnull resultDict) {
NSLog(@"resultCode = %d, resultDict = %@",resultCode,resultDict);
if (resultCode == 200) {
// ミニアプリが起動されると、ミニアプリのホームページにリダイレクトされます。
}
}];
}カテゴリリストを取得する
ミニアプリコンテナー SDK は、ミニアプリのカテゴリリストを取得するためのインターフェイスを提供します。ミニアプリのカテゴリリストのみを取得する場合は、このインターフェイスを直接使用できます。
id<EMASMiniAppService> miniAppService = [[EMASServiceManager sharedInstance] serviceForProtocol:@"EMASMiniAppService"];
if (miniAppService) {
[miniAppService queryMiniAppCategories:^(int resultCode, NSArray *resultArray) {
if (resultCode == 200) {
// resultCode の値が 200 の場合、カテゴリリストが取得されます。
} else {
// 失敗
}
}];
}カテゴリのミニアプリリストを取得する
ミニアプリコンテナー SDK は、カテゴリ ID のミニアプリリストを取得するためのインターフェイスを提供します。ミニアプリリストのみを取得する場合は、このインターフェイスを直接使用できます。
id<EMASMiniAppService> miniAppService = [[EMASServiceManager sharedInstance] serviceForProtocol:@"EMASMiniAppService"];
if (miniAppService) {
[miniAppService queryMiniAppsByCategory:categoryId completionBlock:^(int resultCode, NSArray * _Nonnull resultArray) {
if (resultCode == 200) {
// resultCode の値が 200 の場合、カテゴリ ID のミニアプリリストが取得されます。
} else {
// 失敗
}
}];
}