华为已经发布了华为移动服务,并正在逐步更新其服务以与谷歌和苹果密切匹配。至于你提出的问题:
- React Native应用程序是否需要更改代码才能工作?
是的,只要您可以生成一个apk文件上传到他们的华为应用商店即可。您无需进行任何代码更改。
- Firebase SDK会工作吗?
这取决于您尝试将哪种类型的服务纳入您的应用程序中。例如,如果您想使用Firebase提供的身份验证模块进行Google登录,则仅不支持不包括GMS(Google移动服务)的手机,例如华为Mate 30 Pro。
但是,如果您正在查看通知。 Google有Firebase云消息传递,华为有其华为推送通知。您可以使用其中任何一个,这取决于后端服务架构并将在所有Android设备上受到支持。
- 在其他Android生态系统中维护应用程序的真实隐藏成本是什么?
这完全取决于您如何设计系统以及应用程序所需的服务。假设您希望将华为登录纳入到应用程序中,您还需要包含HMS,但这些服务将维护在华为应用商店中,而对于Google,您已经实现了FCM、Google登录和地图。那么,您将不得不维护两个不同的分支,它们共享共同的核心功能,这需要时间和费用。
如果应用程序只使用纯粹基于逻辑的最基本功能,非常少或根本没有GMS/HMS,则您无需为项目维护单独的分支,只需要一个分支即可。您只需要向您的Google Play发布和华为应用商店提交版本。
如果您想为GMS和HMS使用一个单一的存储库,则必须检查可用的服务以启用功能。
对于GMS
val gmsAvailable = GooglePlayServicesUtil.getInstance().isGooglePlayServicesAvailable(mContext)
为HMS
val hmsAvailable = HuaweiApiAvailability.getInstance().isHuaweiMobileServicesAvailable(mContext)
因此,在尝试使用Google登录、华为登录或任何其他服务时,应该这样做。
if gmsAvailable {
} else if hmsAvailable {
}
注意* 上面的代码是用 Kotlin 编写的