全部产品
Search
文档中心

SuperApp:Kelola program mini di Superapp

更新时间:Aug 23, 2025

Ikhtisar

Topik ini menjelaskan praktik terbaik untuk mengelola program mini di Superapp dalam skenario berikut:

  • Mencari program mini.

  • Menampilkan program mini di stan rekomendasi.

  • Menambahkan program mini ke favorit.

  • Mengambil program mini yang baru saja digunakan.

Skenario

  • Cari program mini tertentu atau ambil semua program mini pada klien

    • Pengenalan

      Bagian ini menjelaskan cara dengan cepat mencari program mini tertentu atau mengambil semua program mini pada klien.

    • Detail Solusi

      Application Open Platform menyediakan API operasi siap pakai untuk mencari program mini pada klien dan menawarkan API operasi kontainer untuk program mini. Jika Anda ingin mengambil semua program mini, Anda dapat langsung memanggil operasi API tertentu tanpa perlu menentukan kata kunci.

      image

    • Referensi API

      • Anda dapat memanggil operasi API untuk mencari program mini tertentu. Untuk informasi lebih lanjut, lihat "Cari program mini tertentu" di bagian SDK Open APIs dari topik ini.

      • Anda dapat memanggil operasi API untuk mengambil data semua program mini. Untuk informasi lebih lanjut, lihat "Ambil semua program mini" di bagian SDK Open APIs dari topik ini.

  • Tampilkan program mini di stan rekomendasi

    • Pengenalan

      Bagian ini menjelaskan cara menggunakan stan rekomendasi tetap untuk program mini di Superapp guna memfasilitasi pemasaran masuk dari program mini tertentu.

    • Detail Solusi

      Di Superapp, logika untuk menampilkan stan rekomendasi untuk program mini diimplementasikan secara otomatis. Anda dapat menggunakan layanan manajemen stan Superapp untuk mengintegrasikan API Application Open Platform demi menemukan aplikasi online.

      image

    • Referensi API

      Anda dapat memanggil operasi API di layanan manajemen stan untuk menampilkan program mini di stan rekomendasi. Untuk informasi lebih lanjut, lihat "Kueri program mini pada klien" dan "Kueri metadata program mini yang diterbitkan" di bagian SuperApp Channel Management Open APIs dari topik ini.

  • Tambahkan program mini ke favorit

    • Pengenalan

      Bagian ini menjelaskan cara menambahkan program mini ke favorit sehingga Anda dapat dengan cepat memulai program mini tersebut.

    • Detail Solusi

      Saat mengintegrasikan kontainer, implementasikan antarmuka penyedia layanan (SPI) yang digunakan untuk menambahkan program mini ke favorit.

      image

    • Referensi API

      • Anda dapat memanggil operasi API pada klien untuk menambahkan program mini ke favorit. Untuk informasi lebih lanjut, lihat "Tambahkan program mini ke favorit" di bagian SDK Open APIs dari topik ini.

      • Anda dapat memanggil operasi API pada server untuk mengkueri metadata program mini. Untuk informasi lebih lanjut, lihat "Kueri metadata program mini yang diterbitkan" di bagian SuperApp Channel Management Open APIs dari topik ini.

  • Dapatkan program mini yang baru saja digunakan

    • Pengenalan

      Bagian ini menjelaskan cara mendapatkan daftar program mini yang baru saja digunakan.

    • Detail Solusi

      Integrasikan kontainer program mini untuk mengaktifkan SPI event.

      image

    • Referensi API

      • Anda dapat memanggil operasi API pada klien untuk menyimpan program mini ke daftar baru-baru ini. Untuk informasi lebih lanjut, lihat "Simpan program mini ke daftar baru-baru ini" di bagian SDK Open APIs dari topik ini.

      • Anda dapat memanggil operasi API pada server untuk mengkueri metadata program mini. Untuk informasi lebih lanjut, lihat "Kueri metadata program mini yang diterbitkan" di bagian SuperApp Channel Management Open APIs dari topik ini.

Open APIs

  • SuperApp Channel Management Open APIs

    SuperApp Channel Management Open APIs adalah antarmuka layanan backend tingkat Channel yang disediakan oleh Application Open Platform, menggunakan AccessKey dan SecretKey dari target APP untuk penandatanganan dan verifikasi.

  • Kueri Program Mini pada App

    • Path: /openapi/v1/channel/miniapp/search

    • Method: POST

    • Content-Type: application/json

    • Body:

      {
        "after": "0", # Halaman pertama dimulai dari "0", dan posisi awal halaman berikutnya merujuk pada bidang "after" dalam hasil yang dikembalikan.
        "limit": 10, # Jumlah program mini yang ingin Anda kueri.
        "keyWord": "demo" # Kata kunci untuk kueri.
      }
    • Response:

      {
        "success":true,  
        "model":{
              "after":"64", # Posisi awal halaman berikutnya, jika nilai ini sama dengan "-1", menunjukkan akhir dari kueri.
              "size":2,
              "data":[
                  {
                      "id":390,
                      "appId":"1511654371932651552768",
                      "miniappCode":"1511654371932651552768",
                      "publishServicePlanId":"P442675078547163136",
                      "name":"uniapp-hll-0505",
                      "version":"1.0.1",
                      "description":"",
                      "slogan":"11111",
                      "platform":"MiniApp",
                      "framework":"UniApp",
                      "icon":"icon/app/50112037081b4d5e9955f43aae22fb0d.jpeg",
                      "publicIcon":"https://ceph-pre1.emas-poc.com/emas-cdn/publish/intercnn/icon/app/50112037081b4d5e9955f43aae22fb0d.jpeg"
                  },
                  {
                      "id":64,
                      "appId":"1511608276458218872832",
                      "miniappCode":"1511608276458218872832",
                      "publishServicePlanId":"P396236781277202432",
                      "name":"HllwindVane1129",
                      "version":"0.0.2",
                      "description":"",
                      "slogan":"",
                      "platform":"MiniApp",
                      "framework":"WindVane",
                      "icon":"icon/app/b4d6ff4f9111470c95f4ac2ef1c3079d.jpeg",
                      "publicIcon":"http://cxfe-daily.oss-cn-hangzhou.aliyuncs.com/icon/app/b4d6ff4f9111470c95f4ac2ef1c3079d.jpeg?Expires=1672281817&OSSAccessKeyId=LTAI****************&Signature=ZpoXL%2Bo4UGHAcgIQTMPQc30sQ1c%3D"
                  }
              ]
          }
      }
  • Kueri Metadata Program Mini yang Diterbitkan

    • Path: /openapi/v1/channel/miniapp

    • Method: POST

    • Content-Type: application/json

    • Body:

      {
        "miniappCode": "1511654371932651552768"
      }
    • Response:

      {
        "success":true,  
        "model":{
              "channelCode":"1611606158604452241408",
              "gmtCreate":1683268112168,
              "gmtModified":1683350460819,
              "description":{
                  "inuseStatus":"ACTIVE",
                  "description":"",
                  "icon":"icon/app/50112037081b4d5e9955f43aae22fb0d.jpeg",
                  "iconPublicUrl":"http://47.103.XXX.XX:7480/intercnn/icon/app/50112037081b4d5e9955f43aae22fb0d.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20230804T092821Z&X-Amz-SignedHeaders=host&X-Amz-Expires=3599&X-Amz-Credential=IW2NNNAI0D8J2K8F7BPX%2F20230804%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=094773e26ff4ab9ec84e091367670ac007e9b43208bce59fbadd2bece7a3cc46"
              },
              "platform":"MiniApp",
              "framework":"UniApp",
              "publishStatus":"ONLINE",
              "onlineVersion":"1.0.1"
          }
      }
  • Kueri Kategori Sebuah Aplikasi

    • Path: /openapi/v1/channel/category/list

    • Method: POST

    • Content-Type: application/json

    • Header: x-locale: zh_CN/en_US (default)

    • Body:

      {}
    • Response:

      {
        	"success":true,
          "model":[
              {
                  "name":"Tagihan",
                  "channelCode":"1611606158604452241408",
                  "categoryId":1,
                  "status":"ENABLE",
                  "sort":0,
                  "gmtCreate":1690366685363,
                  "gmtModified":1690366685363
              },
              {
                  "name":"Makanan & Minuman",
                  "channelCode":"1611606158604452241408",
                  "categoryId":3,
                  "status":"ENABLE",
                  "sort":1,
                  "gmtCreate":1690366685365,
                  "gmtModified":1690366685365
              }
          ]
      }
  • Kueri Program Mini yang Terikat pada Kategori Aplikasi

    • Path: /openapi/v1/channel/category/miniapp/list

    • Method: POST

    • Content-Type: application/json

    • Body:

      {
        "categoryId": 1L
      }
    • Response:

      {
        	"success":true,
          "model":[
              {
                  "name":"third-party-uniapp",
                  "icon":"icon/channel/default_miniapp_icon.png",
                  "iconPublicUrl":"http://47.103.XXX.XX:7480/intercnn/icon/channel/default_miniapp_icon.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20230804T094401Z&X-Amz-SignedHeaders=host&X-Amz-Expires=3599&X-Amz-Credential=IW2NNNAI0D8J2K8F7BPX%2F20230804%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=e515ba8ade8f66d0473c8c407b5a9b90385f5e6cba1a2b9e885232f3a6969020",
                  "channelCode":"1611606158604452241408",
                  "categoryId":3,
                  "miniappCode":"1511686301389817548800",
                  "channelTagName":"HOTHOTHOTHOTHOTHOTHOTHOTHOT",
                  "publishStatus":"ONLINE",
                  "onlineVersion":"0.0.1",
                  "sort":0,
                  "gmtCreate":1690882000531,
                  "gmtModified":1690882032947
              }
          ]
      }

  • Konstruksi Header Permintaan

Parameter Header Permintaan

Header permintaan berisi bidang-bidang berikut:

Bidang

Diperlukan

Contoh kode

X-Request-Sign

Ya

X-Request-Sign: ****

X-Access-Key

Ya

X-Access-Key: 46b1cac78ed94ca4b99ad6de550afb6

Content-Type

Tidak

Content-Type: application/json; charset=UTF-8

X-Request-Timestamp

Ya

X-Request-Timestamp: 1676904384074

Metode Pembuatan Tanda Tangan

  1. Pertama, dapatkan accessKey dan secretKey aplikasi dari SuperApp Open Platform. Tentukan properti berikut yang digunakan untuk membangun konten yang akan ditandatangani:

    • HTTP_URI : contohnya /openapi/v1/channel/miniapp/search

    • X-Access-Key:46b1cac78ed94ca4b99ad6de550a****

    • X-Request-Timestamp:1676904384074

    • HTTP_BODY : Kode berikut memberikan contoh badan permintaan HTTP:

      {
        "after": "0", # Halaman pertama dimulai dari "0", dan posisi awal halaman berikutnya merujuk pada bidang "after" dalam hasil yang dikembalikan.
        "limit": 10, # Jumlah program mini yang ingin Anda kueri.
        "keyWord": "demo" # Kata kunci untuk kueri.
      }
  2. Bangun konten yang akan ditandatangani dalam format berikut berdasarkan informasi sebelumnya: <HTTP_METHOD> <HTTP_URI>\n<HTTP_BODY>.<Request-Time>.<Access-Key>

    POST /openapi/v1/channel/miniapp/search
    {
      "after": "0",
      "limit": 10,
      "keyWord": "demo"
    }.1676904384074.46b1cac78ed94ca4b99ad6de550a****
    
  3. Gunakan algoritma HmacSHA1 untuk menghasilkan tanda tangan.

    Kode berikut memberikan contoh cara menambahkan tanda tangan ke permintaan:

    import org.apache.commons.lang3.StringUtils;
    import javax.crypto.Mac;
    import javax.crypto.spec.SecretKeySpec;
    import java.nio.charset.StandardCharsets;
    import java.security.InvalidKeyException;
    import java.security.NoSuchAlgorithmException;
    import java.util.Base64;
    
    public class SignDemo {
    
        private static final char[] HEX = new char[] {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd',
            'e', 'f'};
    
        public static String sign(String requestURI, String accessKey, String secretKey, Long requestTime,
                                  String requestBody) {
            String content = String.format("POST %s\n%s.%s.%s", requestURI, requestBody, requestTime, accessKey);
            String signed = generateSign(content, secretKey, "HmacSHA1");
            return Base64.getEncoder().encodeToString(signed.getBytes(StandardCharsets.UTF_8));
        }
    
        public static String generateSign(String content, String key, String algorithm) {
            if (!StringUtils.isEmpty(algorithm) && !StringUtils.isEmpty(content) && null != key) {
                try {
                    SecretKeySpec signinKey = new SecretKeySpec(key.getBytes(), algorithm);
                    Mac mac = Mac.getInstance(algorithm);
                    mac.init(signinKey);
                    byte[] rawHmac = mac.doFinal(content.getBytes());
                    return convertToHex(rawHmac);
                } catch (InvalidKeyException | NoSuchAlgorithmException var6) {
                    return "";
                }
            } else {
                return "";
            }
        }
    
        public static String convertToHex(byte[] bytes) {
            int len = bytes.length;
            StringBuilder buf = new StringBuilder(len * 2);
    
            for (int j = 0; j < len; ++j) {
                buf.append(HEX[bytes[j] >> 4 & 15]);
                buf.append(HEX[bytes[j] & 15]);
            }
            return buf.toString();
        }
    }
  4. Kirim permintaan

Tambahkan X-Access-Key, X-Request-Timestamp, dan X-Request-Sign ke header permintaan untuk membangun permintaan berikut:

curl -X POST \
  https://example.com/openapi/v1/channel/miniapp/search \
  -H 'Content-Type: application/json' \
  -H 'X-Access-Key: 46b1cac78ed94ca4b99ad6de550afb68' \
  -H 'X-Request-Timestamp: 1676904384074' \
  -H 'X-Request-Sign: KrwDE9tAPJYBb4cUZU6ALJxGIZgwDXn5UkFPMip09n%2FkYKPhEIII%2Fki2rYY2lPtuKVgMNz%2BtuCU%2FjzRpohDbrOd8zYriiukpGAxBQDIVbatGI7WYOcc9YVQwdCR6ROuRQvr%2FD1AfdhHd6waAASu5Xugow9w1OW7Ti93LTd0tcyEWQYd2S7c3A73sHOJNYl8DC1PjasiBozZ%2FADgb7ONsqHo%2B8fKHsLygX9cuMkQYTGIRBQsvfgICnJhh%2BzXV8AQoecJBTrv6p%xxxx' \
  -d '{
  "after": "0",
  "limit": 10,
  "keyWord": "demo"
}'

  • SuperApp Space Management Open APIs

    SuperApp Space Management Open APIs adalah antarmuka layanan backend tingkat Space yang disediakan oleh Application Open Platform, berdasarkan AccessKey dan SecretKey akun administrator Space untuk penandatanganan dan verifikasi. Dalam banyak kasus, Open-API ini digunakan untuk menyinkronkan data relevan di ruang Application Open Platform.

  • Kueri Aplikasi atau Saluran Tertentu

    • Path: /openapi/v1/space/channel/query

    • Method: POST

    • Content-Type: application/json

    • Body:

      {
        "spaceCode": "1531602854311704010754",
        "currentPage": 1,
        "pageSize": 10
      }
    • Response:

      {
        	"success":true,
          "model":{
              "total":5,
              "list":[
                  {
                      "spaceCode":"1531602854311704010754",
                      "channelCode":"1611608397718512873472",
                      "gmtCreate":1672306873348,
                      "gmtModified":1677137552998,
                      "name":"2test channel by gdm",
                      "icon":"icon/channel/7aa28302a4b44859b397d2438e19d22d.png",
                      "iconPublicUrl":"http://47.103.XXX.XX:7480/intercnn/icon/channel/7aa28302a4b44859b397d2438e19d22d.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20230804T095150Z&X-Amz-SignedHeaders=host&X-Amz-Expires=3600&X-Amz-Credential=IW2NNNAI0D8J2K8F7BPX%2F20230804%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=f19482bc1e94100672c50846df67cf8668f329503292dbab6bcfb21bb95ee043",
                      "description":"test channel of description",
                      "status":"ONLINE"
                  },
                  {
                      "spaceCode":"1531602854311704010754",
                      "channelCode":"1611638746437729390592",
                      "gmtCreate":1679542571898,
                      "gmtModified":1684482439359,
                      "name":"jkkjkj",
                      "icon":"icon/channel/db6330e973404d1183fbc9e38f207b7e.jpeg",
                      "iconPublicUrl":"http://47.103.XXX.XX:7480/intercnn/icon/channel/db6330e973404d1183fbc9e38f207b7e.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20230804T095150Z&X-Amz-SignedHeaders=host&X-Amz-Expires=3600&X-Amz-Credential=IW2NNNAI0D8J2K8F7BPX%2F20230804%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=4b5cf7c56d52a6a812ebd8169ab04b5744f39fea5a076e53e626db92255c4968",
                      "description":"demo",
                      "status":"ONLINE"
                  }
              ],
              "pageSize":10,
              "current":1,
              "empty":false,
              "totalPages":1
          }
      }
  • Kueri Program Mini

    • Path: /openapi/v1/space/miniapp/query

    • Method: POST

    • Content-Type: application/json

    • Body:

      {
        "spaceCode": "1531602854311704010754",
        "currentPage": 1,
        "pageSize": 10
      }
    • Response:

      {
        	"success":true,
          "model":{
              "total":45,
              "list":[
                  {
                      "spaceCode":"1531602854311704010754",
                      "miniappCode":"1511686305220810936320",
                      "gmtCreate":1690881469335,
                      "gmtModified":1690881469335,
                      "platform":"MiniApp",
                      "framework":"WindVane",
                      "name":"third-party 111",
                      "description":"",
                      "slogan":"",
                      "icon":"icon/channel/default_miniapp_icon.png",
                      "iconPublicUrl":"http://47.103.XXX.XX:7480/intercnn/icon/channel/default_miniapp_icon.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20230804T095456Z&X-Amz-SignedHeaders=host&X-Amz-Expires=3600&X-Amz-Credential=IW2NNNAI0D8J2K8F7BPX%2F20230804%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=5d121004dd1bfee918ce3504f67fa541104f3556b13d57ff8b27212e99043acb"
                  },
                  {
                      "spaceCode":"1531602854311704010754",
                      "miniappCode":"1511686243166489821184",
                      "gmtCreate":1690866674445,
                      "gmtModified":1690874095536,
                      "platform":"MiniApp",
                      "framework":"WindVane",
                      "name":"teest",
                      "description":"",
                      "slogan":"",
                      "icon":"icon/channel/default_miniapp_icon.png",
                      "iconPublicUrl":"http://47.103.XXX.XX:7480/intercnn/icon/channel/default_miniapp_icon.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20230804T095456Z&X-Amz-SignedHeaders=host&X-Amz-Expires=3600&X-Amz-Credential=IW2NNNAI0D8J2K8F7BPX%2F20230804%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=5d121004dd1bfee918ce3504f67fa541104f3556b13d57ff8b27212e99043acb"
                  }
              ],
              "pageSize":5,
              "current":1,
              "empty":false,
              "totalPages":9
          }
      }
  • Kueri Informasi Publikasi Program Mini

    • Path: /openapi/v1/space/miniapp/publish

    • Method: POST

    • Content-Type: application/json

    • Body:

      {
        "spaceCode": "1531602854311704010754",
        "currentPage": 1,
        "pageSize": 10
      }
    • Response:

      {
        	"success":true,
          "model":{
              "spaceCode":"1531602854311704010752",
              "miniappCode":"1511687342586899365888",
              "gmtCreate":1691128796684,
              "gmtModified":1691134056419,
              "platform":"MiniApp",
              "framework":"WindVane",
              "name":"WTF0804",
              "description":"",
              "slogan":"",
              "icon":"icon/channel/default_miniapp_icon.png",
              "iconPublicUrl":"http://47.103.XXX.XX:7480/intercnn/icon/channel/default_miniapp_icon.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20230804T100031Z&X-Amz-SignedHeaders=host&X-Amz-Expires=3600&X-Amz-Credential=IW2NNNAI0D8J2K8F7BPX%2F20230804%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=59143f1fff5a849b08e4046590f972f4740f38fe5f899d38deffcfb92061c9db",
              "publishMiniappInfo":[
                  {
                      "channelCode":"1611606158604452241408",
                      "channelName":"SuperApp Channel test1",
                      "channelIcon":"icon/channel/393eaa3f7fef4205b34e5817310e6cf2.jpeg",
                      "channelIconPublicUrl":"http://47.103.XXX.XX:7480/intercnn/icon/channel/393eaa3f7fef4205b34e5817310e6cf2.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20230804T100031Z&X-Amz-SignedHeaders=host&X-Amz-Expires=3599&X-Amz-Credential=IW2NNNAI0D8J2K8F7BPX%2F20230804%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=716456ad0355b10475da9afa6b0bc5c976a84d40c21fb1b4b3990cefa15bcab6",
                      "gmtCreate":1691129052113,
                      "gmtModified":1691134073490,
                      "miniappCode":"1511687342586899365888",
                      "onlineVersion":"0.0.5",
                      "publishStatus":"ONLINE",
                      "description":{
                          "inuseStatus":"ACTIVE",
                          "name":"0.0.5",
                          "description":"",
                          "icon":"icon/channel/default_miniapp_icon.png",
                          "iconPublicUrl":"http://47.103.xxx.xxx:7480/intercnn/icon/channel/default_miniapp_icon.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20230804T100031Z&X-Amz-SignedHeaders=host&X-Amz-Expires=3599&X-Amz-Credential=IW2NNNAI0D8J2K8F7BPX%2F20230804%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=c419ed372b6827aa5ba540f95c4edad4bb8c168a37cb0005f3220922cb4dcd63"
                      }
                  }
              ]
          }
      }
  • Konstruksi Header Permintaan

SuperApp space management openapi tanda tangan menggunakan accessKey dan secretKey akun administrator ruang pihak pertama. Silakan hubungi tim operasi SuperApp Open Platform untuk mendapatkan nilai yang sesuai. Parameter header permintaan dan metode pembuatan tanda tangan sama dengan "SuperApp Channel Management Open APIs".

  • SDK Open APIs

    • Tambahkan Program Mini ke Favorit

      • Android

        ServiceManager.getInstance().registerService(IMiniAppFavoriteService.class.getName(), new IMiniAppFavoriteService() {
            @Override
            public void addToFavorites(String appId, ServiceCallback callback) {
                // Tambahkan program mini ke favorit. Hasilnya dikembalikan melalui callback.
            }
        
            @Override
            public void removeFromFavorites(String appId, ServiceCallback callback) {
                // Hapus program mini dari favorit. Hasilnya dikembalikan melalui callback.
            }
        
            @Override
            public boolean isFavorite(String appId) {
                // Periksa apakah program mini telah ditambahkan ke favorit.
                return false;
            }
        });
      • iOS

        [[EMASServiceManager sharedInstance] registerServiceProtocol:@"EMASMiniAppFavoriteService" IMPClass:@"EMASMiniAppFavoriteServiceImpl" target:nil];
        
        
        @implementation EMASMiniAppFavoriteServiceImpl
        
        - (void)addToFavorites:(NSString*)subAppCode completion:(nonnull EMASFavoriteCompletionBlock)completionBlock{
        	 // Tambahkan program mini ke favorit. Hasilnya dikembalikan melalui block.
        }
        
        - (void)removeFromFavorites:(NSString*)subAppCode completion:(nonnull EMASFavoriteCompletionBlock)completionBlock{
         	 // Hapus program mini dari favorit. Hasilnya dikembalikan melalui block.
        }
        
        - (BOOL)isFavorite:(NSString*)subAppCode {
           // Periksa apakah program mini telah ditambahkan ke favorit.
           return NO;
        }
        
        @end
    • Simpan Program Mini ke Daftar Baru-baru Ini

      • Android

        IMiniAppService miniAppService = ServiceManager.getInstance().getService(IMiniAppService.class.getName());
        if (miniAppService != null) {
            miniAppService.openMiniApp(mItemView.getContext(), ((MiniAppInfo) data).getAppId(), null, new OnOpenMiniAppListener() {
                @Override
                public void onOpenMiniApp() {
                    
                }
        
                @Override
                public void onOpenSuccess(String appId) {
                    // Simpan program mini ke daftar baru-baru ini saat program mini dimulai.
                }
        
                @Override
                public void onOpenFailed(String appId, int errorCode) {
                    
                }
            });
        }
      • iOS

        id<EMASMiniAppService> miniAppService = [[EMASServiceManager sharedInstance] serviceForProtocol:@"EMASMiniAppService"];
        
        if (miniAppService) {
          [miniAppService openMiniApp:appId openConfiguration:nil completionBlock:^(int resultCode, NSDictionary * _Nonnull resultDict) {
             // Jika nilai resultCode adalah 200, program mini telah dimulai.
             // Simpan program mini ke daftar baru-baru ini.
          }];
        
        }
        
    • Kueri Metadata Program Mini

      Catatan

      Jika Anda ingin mendapatkan metadata real-time dari program mini pada klien, Anda dapat memanggil operasi API kontainer.

      • Android

        IMiniAppService miniAppService = ServiceManager.getInstance().getService(IMiniAppService.class.getName());
        if (miniAppService != null) {
            // Parameter appIds menentukan ID program mini yang metadata-nya ingin Anda kueri.
            miniAppService.getMiniAppInfos(this, appIds, new OnGetMiniAppsListener() {
                @Override
                public void onSuccess(List<MiniAppInfo> miniAppInfos) {
                    // Metadata program mini dikembalikan.
                }
        
                @Override
                public void onFailed(int errorCode) {
        
                }
            });
        }
      • iOS

        id<EMASMiniAppService> miniAppService = [[EMASServiceManager sharedInstance] serviceForProtocol:@"EMASMiniAppService"];
        
        if (miniAppService) {
           // Parameter appIds menentukan ID program mini yang metadata-nya ingin Anda kueri.
          [miniAppService getMiniAppInfo:appIds completionBlock:^(int resultCode, NSArray * _Nonnull miniApps) {
             // Jika nilai resultCode adalah 200, metadata program mini telah di-query.
             // Metadata program mini dikembalikan.
          }];
        }
    • Cari Program Mini Tertentu

      • Android

        IMiniAppService miniAppService = ServiceManager.getInstance().getService(IMiniAppService.class.getName());
        if (miniAppService != null) {
            // Kata kunci untuk pencarian.
            miniAppService.queryMiniApps(this, keyword, new OnQueryMiniAppsListener() {
                @Override
                public void onSuccess(List<MiniAppInfo> miniAppInfos, String anchor) {
                    // Hasil pencarian dikembalikan. Secara default, maksimum 10 program mini dapat diperoleh. Parameter anchor digunakan untuk mendapatkan lebih banyak program mini.
                }
        
                @Override
                public void onFailed(int errorCode) {
        
                }
            });
        }
      • iOS

        id<EMASMiniAppService> miniAppService = [[EMASServiceManager sharedInstance] serviceForProtocol:@"EMASMiniAppService"];
        
        if (miniAppService) {
           // Parameter keyword menentukan kata kunci pencarian. Nilai default anchor adalah 0.
          [miniAppService queryMiniApps:keyword anchor:anchor completionBlock:^(int resultCode, NSArray * _Nonnull miniApps, NSString *anchor) {
         		// Jika nilai resultCode adalah 200, pencarian berhasil.	
            // Hasil pencarian dikembalikan. Secara default, maksimum 10 program mini dapat diperoleh. Parameter anchor digunakan untuk mendapatkan lebih banyak program mini.
          }];
        }
    • Ambil Semua Program Mini

      • Android

        IMiniAppService miniAppService = ServiceManager.getInstance().getService(IMiniAppService.class.getName());
         if (miniAppService != null) {
            // Biarkan kata kunci kosong.
            miniAppService.getMiniAppList(this, new OnGetMiniAppsListener() {
                @Override
                public void onSuccess(List<MiniAppInfo> miniAppInfos, String anchor) {
                    // Daftar program mini dikembalikan. Secara default, maksimum 10 program mini dapat diperoleh. Parameter anchor digunakan untuk mendapatkan lebih banyak program mini.
                }
        
                @Override
                public void onFailed(int errorCode) {
        
                }
            });
         }
      • iOS

        id<EMASMiniAppService> miniAppService = [[EMASServiceManager sharedInstance] serviceForProtocol:@"EMASMiniAppService"];
        
        if (miniAppService) {
           // Nilai default parameter anchor adalah 0.
          [miniAppService getMiniAppList:anchor completionBlock:^(int resultCode, NSArray * _Nonnull miniApps, NSString *anchor) {
          	 // Jika nilai resultCode adalah 200, semua program mini telah diambil.
             // Daftar program mini dikembalikan. Secara default, maksimum 10 program mini dapat diperoleh. Parameter anchor digunakan untuk mendapatkan lebih banyak program mini.
          }];
        }

Istilah