- iOS 14.0+
- Swift 5.0+
- Xcode 14.0+
您可以通过以下方式将 Dimina SDK 添加到您的 iOS 项目中:
在您的 Podfile 中添加:
pod 'Dimina', :git => 'https://github.com/didi/dimina.git'然后运行:
pod install将编译好的小程序压缩包放入 JsApp.bundle 文件夹,文件夹以小程序id命名。每个小程序文件夹需包含以下内容:
config.json- 小程序配置文件,包含以下字段:
{
"appId": "wx92269e3b2f304afc", // 小程序唯一标识
"name": "小程序名称",
"path": "example/index", // 小程序入口路径
"versionCode": 1, // 启动小程序时会根据版本号确认是否需要更新
"versionName": "1.0.0"
}[appId].zip- 小程序代码包,文件名需与appId一致
目录结构示例:
JsApp.bundle/
├── wx92269e3b2f304afc/
│ ├── config.json
│ └── wx92269e3b2f304afc.zip
└── wxbaf4b47de04f1d8a/
├── config.json
└── wxbaf4b47de04f1d8a.zipimport Dimina
import SwiftUI
struct ContentView: View {
var body: some View {
Button("启动小程序") {
launchMiniProgram()
}
}
func launchMiniProgram() {
if let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene,
let window = windowScene.windows.first
{
let navController = UINavigationController()
// 创建一个新的 ContentView 作为根视图,可以自行替换
let contentView = ContentView()
let hostingController = UIHostingController(rootView: contentView)
hostingController.navigationItem.title = "星河小程序"
// 设置为根视图
navController.viewControllers = [hostingController]
window.rootViewController = navController
// 创建小程序配置和实例
let manager: DMPAppManager = DMPAppManager.sharedInstance()
let appConfig: DMPAppConfig = DMPAppConfig(appName: "小程序名称", appId: "wx92269e3b2f304afc")
let app: DMPApp = manager.appWithConfig(appConfig: appConfig)
// 设置导航
app.getNavigator()!.setup(navigationController: navController)
// 启动小程序
Task { @MainActor in
let launchConfig: DMPLaunchConfig = DMPLaunchConfig()
await app.launch(launchConfig: launchConfig)
}
}
}
}当不再需要小程序时,可以关闭它:
app.destroy()小程序可能需要访问设备的各种权限,如相机、位置等。请确保在 Info.plist 中添加相应的权限描述:
<key>NSCameraUsageDescription</key>
<string>小程序需要使用您的相机</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>小程序需要使用您的位置信息</string>运行命令:
cd iOS && pod install使用 Xcode 打开 dimina.xcworkspace 可以查看示例项目。