当前工程支持了ios
,android
,ohos
三个平台。
需要先进入到项目中,之后执行命令
flutter create --platforms=ohos .
如果之前设置了org,此时可能会报org冲突,此时需要在命令中指定 org。
flutter create --platforms=ohos . --org="xxx.xxx"
其中 xxx.xxx
为您 org 的名称。
flutter create new_project_name --org="xxx.xxx" --platforms=ios,android,ohos
在工程的 pubspec.yaml
中添加 sdk 依赖。
im_flutter_sdk:
git:
url: "https://github.com/easemob/im_flutter_sdk_oh.git"
ref: "main"
因为 环信 sdk 只支持 useNormalizedOHMUrl模式,最需要在你的项目中配置 useNormalizedOHMUrl 为 true
打开 app/ohos/build-profile.json5
文件,找到 app:products:
, 并向其中添加 buildOption
"products": [
{
"name": "default",
"signingConfig": "default",
"compatibleSdkVersion": "5.0.0(12)",
"runtimeOS": "HarmonyOS",
// 添加内容
"buildOption": {
"strictMode": {
"useNormalizedOHMUrl": true
}
}
}
]
运行项目时需要先 build hap包。 执行
flutter build hap --debug
目前 flutter 社区版框架不支持 floatingActionButton,如果需要运行项目,要删除 floatingActionButton。
同时,如果是模拟器运行,需要关闭 impeller
,
关闭方法参考 常见问题
项目打包执行 flutter build hap --release
- 在sdk初始化时增加类华为appId的传参,调用后会把appID传给鸿蒙im sdk,以便它去获取推送和绑定deviceToken。调用方式:
EMOptions options = EMOptions.withAppKey(
appKey,
extSettings: {
ExtSettings.kAppIDForOhOS: "",
},
);
调用后sdk会自动获取deviceToken和绑定,不需要flutter层再去调用 bindDeviceToken方法了, 当然,bindDeviceToken方法依然可用,如果不想使用以上方法,可以调用bindDeviceToken。