问题
目前我已经开发了可在 IOS 和 Android 上运行的移动应用程序,但现在我想让它也支持华为 Harmony OS。现在下载 .apk 文件后它显示黑屏,因为它使用了 Harmony OS 禁止的 firebase 云消息传递。
我的解决方案
目前,我计划通过按照此link使用以下解决方案检查HMS可用性来同时实现firebase和HMS。如果我调用 firebase 包但阻止使用代码使用任何 firebase 包功能,Harmony OS 是否能够支持我的应用程序?我的方法是否正确,或者我应该更改为仅使用 HMS 推送通知,还是有其他我可以使用的解决方案?
注:
目前,我还在等待开发者帐户被批准,所以我还不能测试。
使用的 Firebase 包:
firebase_core: ^2.24.0
firebase_messaging: ^14.7.6
我的解决方案
Future<int> checkHMSAvailability() async {
HmsApiAvailability client = HmsApiAvailability();
// Check HMS Core (APK) availability status
int status = await client.isHMSAvailable();
return status;
}
//When Initializing
int status = await checkHMSAvailability();
if (status == 1){
FirebaseAPI().initNotifications();
} else {
//HMS Notifications Setup Code Here
}
您需要DevEco Studio才能为HarmonyOS构建HAP(应用程序包)。
否则,您只能针对 Android 操作系统进行构建,并使用 Google 和华为的实现。
这也需要一个后端,可以和苹果、谷歌、华为API交互。
例如:项目中同时有GMS和HMS。