不久,新的华为手机将不再支持谷歌游戏和谷歌移动服务。
华为正在准备一个名为HMS https://developer.huawei.com/consumer/en/service/hms/developer.html的生态系统。
他们的应用商店名为“华为应用程序库”,其文档如下:https://developer.huawei.com/consumer/en/doc/30202
他们现在向开发人员(包括我)发送信息,鼓励他们向商店发布应用程序。他们声称他们只需要一个APK文件,不需要对应用程序进行任何更改。
我的问题是:
发布于 2019-11-08 07:52:47
华为已经发布了其华为移动服务,目前正在逐步更新其服务,以与谷歌和苹果紧密匹配。至于你问的问题
是,只要你能生成一个apk上传到他们的华为应用程序库。您不必进行任何代码更改。
这取决于您试图将何种服务合并到您的应用程序中,例如,如果您试图使用Firebase提供的身份验证模块使用Google Login,那么它将不仅在不包括GMS (Google Mobile Services)的手机上得到支持,而GMS是华为的Mate 30 Pro。
但是,如果您正在查看通知。谷歌( Google )拥有Firebase Cloud消息,华为( Huawei )发布了华为的推送通知。您可以使用这两种方式,因为这取决于后端服务的体系结构,并且将在所有android设备上得到支持。
这完全取决于您如何架构应用程序中所需的系统和服务。假设你想在你的应用程序中加入华为注册,你也需要包括HMS,但是你想要在华为应用程序库中维护这些,对于Google来说,FCM和Google Login和Maps已经实现了,那么你必须维护两个不同的分支,它们共享共同的核心功能,这既耗时又费钱。
如果应用程序只使用完全依赖于逻辑、很少或根本没有GMS/HMS的功能,那么您就不必为您的项目维护单独的分支,其中一个就足够了。你只需要向你的谷歌游戏发布和华为应用程序库提交一个版本。
如果您希望对GMS和HMS都使用单个回购,那么您必须检查可用的服务以启用该功能。
为GMS服务
val gmsAvailable = GooglePlayServicesUtil.getInstance().isGooglePlayServicesAvailable(mContext)用于HMS
val hmsAvailable = HuaweiApiAvailability.getInstance().isHuaweiMobileServicesAvailable(mContext)因此,当尝试使用谷歌登录( Google )或华为登录( Huawei Login )或其他任何服务时,它将是。
if gmsAvailable {
// execute GMS Code
} else if hmsAvailable {
// execute HMS Code
}注释*上面的代码在Kotlin中
发布于 2020-05-15 07:27:53
华为已开始构建一个HMS生态系统,在其新设备上提供顶级应用程序,而无需访问Mate 30和P40设备等GMS,从而改善这些设备的用户体验。如果设备能够访问GMS,则建议您使用GMS;如果设备无法访问GMS,则使用HMS。
至于你的问题:
1.
一个React本地应用程序在不改变代码的情况下能正常工作吗?
如果您的应用程序使用任何GMS插件来响应本机,如谷歌登录和Firebase Cloud消息传递,您的应用程序可能无法在没有GMS访问的设备上正常工作。因此,您需要对应用程序进行一些代码更改。华为已经提供了一些HMS核心工具包插件,以应对本地人。有关详细信息,请访问以下链接:
Firebase会起作用吗?
这取决于您使用的GMS服务。例如,如果应用程序使用GMS的推送通知/位置/地图服务,则应用程序可能无法正常工作。在这种情况下,您需要使用相关的HMS。您可以选择使用什么HMS芯服务。
3.
在另一个Android生态系统中维护一个应用程序的隐藏成本是多少?
确实存在一些隐藏的工作量,例如维护代码、向华为AppGallery发布应用程序以及修改GMS和HMS以提供新功能。当然,这取决于应用程序的复杂性。如果您的应用程序使用了许多GMS服务,则工作量相对较高。如果应用程序很少使用GMS服务,则工作量相对较低。为了减少工作量,建议您在项目中同时使用GMS和HMS。该方法如下:
检查设备支持GMS是否
检查设备支持HMS是否
在应用程序中,可以使用以下伪代码同时使用GMS和HMS:
if isGMSAvailable {
// execute GMS Code
} else if isHMSAvailable {
// execute HMS Code
}
通过这样做,您可以减少维护代码和添加新函数的后续工作负载。
发布于 2021-04-08 14:48:11
关于:
Firebase会起作用吗?
您可以使用华为的这项名为QuickHMS的服务--您只需搜索依赖/框架/库,并确定它是否可以在HMS设备上运行:https://quickhms.com/en/compatibility-check/
当前的ReactNative HMS插件列表可以在这里找到:https://developer.huawei.com/consumer/en/doc/development/HMS-Plugin-Library-V1/reactnative-plugin-0000001050155850-V1
https://stackoverflow.com/questions/58631362
复制相似问题