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
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.gitDi dalam
Podfileyang 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'Di dalam
Podfileyang 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 URLCatatan
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-licenseJika 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.
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.