全部产品
Search
文档中心

SuperApp:Mengintegrasikan kontainer miniapp ke dalam aplikasi asli

更新时间:Jul 02, 2025

Enterprise Mobile Application Studio (EMAS) memungkinkan Anda mengintegrasikan kontainer miniapp WindVane atau uni-app ke dalam aplikasi asli. Topik ini menjelaskan cara mengintegrasikan kontainer miniapp ke dalam aplikasi iOS.

Prasyarat

  • AccessKey, SecretKey, dan App Code dari aplikasi asli telah diperoleh. Untuk informasi lebih lanjut, lihat topik Konfigurasi Aplikasi di bab Application Open Platform (untuk operator platform) dari Panduan Pengguna.

  • Nama domain Application Open Platform telah diperoleh. Nama domain lingkungan demo adalah poc.superapp-intl.com.

Langkah 1: Menambahkan dependensi

  1. Tambahkan repositori CocoaPods.

    pod repo add superapp-intl-emas-ios-emas-specs https://gitlab-console.superapp-intl.com/emas-ios/emas-specs.git

    pod repo add superapp-intl-emas-ios-emas-specs-thirdpart https://gitlab-console.superapp-intl.com/emas-ios/emas-specs-thirdpart.git
  2. Di dalam Podfile yang terletak di direktori root proyek, konfigurasikan repositori CocoaPods.

    SDK untuk kontainer miniapp tersedia di repositori CocoaPods. Untuk informasi tentang akun dan kata sandi, hubungi insinyur O&M.

    source 'https://gitlab-console.superapp-intl.com/emas-ios/emas-specs.git'
    source 'https://gitlab-console.superapp-intl.com/emas-ios/emas-specs-thirdpart.git'
  3. Di dalam Podfile yang terletak di direktori root proyek, tambahkan dependensi untuk kontainer miniapp.

    use_frameworks!
    // SDK dasar untuk kontainer miniapp. Dependensi ini diperlukan baik untuk WindVane maupun uni-app.
    pod 'EMASServiceManager'
    pod 'EMASMiniAppAdapter'
    // SDK untuk kontainer miniapp WindVane. Jika Anda ingin mengintegrasikan kontainer miniapp WindVane ke dalam aplikasi, sertakan dependensi ini.
    pod 'EMASWindVaneMiniApp'
    // SDK untuk kontainer miniapp uni-app. Jika Anda ingin mengintegrasikan kontainer miniapp uni-app ke dalam aplikasi, sertakan dependensi ini.
    pod 'EMASUniappMiniApp'

Langkah 2: Menginisialisasi kontainer

Anda harus menginisialisasi kontainer miniapp sebelum dapat menggunakannya.

// SDK yang digunakan untuk menginisialisasi kontainer miniapp.
EMASMiniAppInitConfig *miniAppInitConfig = [EMASMiniAppInitConfig new];
miniAppInitConfig.useUniApp = YES;
miniAppInitConfig.useWindVane = YES;
miniAppInitConfig.accessKey = @"ZXZ8****";//Dapatkan AccessKey dari Application Open Platform.
miniAppInitConfig.secretKey = @"3PNJxKtf7/eqUohlG3bI****";//Dapatkan SecretKey dari Application Open Platform.
miniAppInitConfig.host = @"emas.example.com";//Tentukan nama domain Application Open Platform. Nilai dalam contoh kode ini hanya untuk referensi. Nama domain lingkungan demo adalah emas-publish-intl.emas-poc.com.
miniAppInitConfig.appCode = @"161160615860445224****";//Dapatkan App Code dari Application Open Platform.

EMASMiniAppServiceImpl *miniAppService = [EMASMiniAppServiceImpl new];
[miniAppService initialize:miniAppInitConfig];
[[EMASServiceManager sharedInstance] registerServiceProtocol:@"EMASMiniAppService" IMPClass:@"EMASMiniAppServiceImpl" target:miniAppService];

// Kode berikut memberikan contoh konfigurasi inisialisasi opsional untuk kontainer miniapp WindVane. Jika Anda ingin menggunakan favorit, pengguna terkait, atau mencegat URL atau mengunggah gambar, silakan implementasikan kelas yang sesuai.
//[[EMASServiceManager sharedInstance] registerServiceProtocol:@"EMASMiniAppFavoriteService" IMPClass:@"EMASMiniAppFavoriteServiceImpl" target:[EMASMiniAppFavoriteService new]];//favorit
//[[EMASServiceManager sharedInstance] registerServiceProtocol:@"EMASUserInfoService" IMPClass:@"EMASUserInfoServiceImpl" target:[EMASUserInfoServiceImpl new]];//pengguna terkait
//[[EMASServiceManager sharedInstance] registerServiceProtocol:@"EMASMiniAppURLService" IMPClass:@"EMASMiniAppURLServiceImpl" target:[EMASMiniAppURLServiceImpl new]];//mencegat URL

Catatan

  1. Jika menggunakan komputer Mac dengan chip Apple Silicon M series dan menjalankan simulator, pilih simulator dengan label Rosetta.

    Instal Rosetta:

    sudo softwareupdate --install-rosetta --agree-to-license

    Jika menjalankan tanpa Rosetta, kesalahan Building for 'iOS-simulator', but linking in object file perlu dimodifikasi di Build Settings -> Excluded Architectures, tambahkan Any iOS Simulator SDK arm64. Kesalahan .framework atau .a pihak ketiga x86_64 Undefined symbol:_OBJC_CLASS_$_ perlu ditambahkan di pengaturan build proyek -> Other linker flags -ld64, lalu pilih simulator yang ditandai dengan Rosetta di Product -> Destination untuk menjalankan proyek.

  2. Tambahkan ENABLE_USER_SCRIPT_SANDBOXING di Xcode15. Jika Anda mendapatkan kesalahan "Sandbox: rsync.samba deny", ubah pengaturan build -> user script sandboxing menjadi Tidak.

Referensi API

Untuk informasi lebih lanjut, lihat referensi API.