首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在华为手机上,如果没有谷歌服务,会对本地工作做出反应吗?

在华为手机上,如果没有谷歌服务,会对本地工作做出反应吗?
EN

Stack Overflow用户
提问于 2019-10-30 18:06:45
回答 3查看 10.1K关注 0票数 20

不久,新的华为手机将不再支持谷歌游戏和谷歌移动服务。

华为正在准备一个名为HMS https://developer.huawei.com/consumer/en/service/hms/developer.html的生态系统。

他们的应用商店名为“华为应用程序库”,其文档如下:https://developer.huawei.com/consumer/en/doc/30202

他们现在向开发人员(包括我)发送信息,鼓励他们向商店发布应用程序。他们声称他们只需要一个APK文件,不需要对应用程序进行任何更改。

我的问题是:

  • 一个反应型的本地应用程序会在不改变代码的情况下工作吗?
  • Firebase会起作用吗?
  • 在另一个Android生态系统中维护一个应用程序的真正隐藏成本是多少?
EN

回答 3

Stack Overflow用户

发布于 2019-11-08 07:52:47

华为已经发布了其华为移动服务,目前正在逐步更新其服务,以与谷歌和苹果紧密匹配。至于你问的问题

  1. 如果没有代码更改,反作用本机应用程序会正常工作吗?

,只要你能生成一个apk上传到他们的华为应用程序库。您不必进行任何代码更改。

  1. Firebase会起作用吗?

这取决于您试图将何种服务合并到您的应用程序中,例如,如果您试图使用Firebase提供的身份验证模块使用Google Login,那么它将不仅在不包括GMS (Google Mobile Services)的手机上得到支持,而GMS是华为的Mate 30 Pro。

但是,如果您正在查看通知。谷歌( Google )拥有Firebase Cloud消息,华为( Huawei )发布了华为的推送通知。您可以使用这两种方式,因为这取决于后端服务的体系结构,并且将在所有android设备上得到支持。

  1. 在另一个Android生态系统中维护一个应用程序的真正隐藏成本是多少?

这完全取决于您如何架构应用程序中所需的系统和服务。假设你想在你的应用程序中加入华为注册,你也需要包括HMS,但是你想要在华为应用程序库中维护这些,对于Google来说,FCM和Google Login和Maps已经实现了,那么你必须维护两个不同的分支,它们共享共同的核心功能,这既耗时又费钱。

如果应用程序只使用完全依赖于逻辑、很少或根本没有GMS/HMS的功能,那么您就不必为您的项目维护单独的分支,其中一个就足够了。你只需要向你的谷歌游戏发布和华为应用程序库提交一个版本。

如果您希望对GMS和HMS都使用单个回购,那么您必须检查可用的服务以启用该功能。

为GMS服务

代码语言:javascript
复制
val gmsAvailable = GooglePlayServicesUtil.getInstance().isGooglePlayServicesAvailable(mContext)

用于HMS

代码语言:javascript
复制
val hmsAvailable = HuaweiApiAvailability.getInstance().isHuaweiMobileServicesAvailable(mContext)

因此,当尝试使用谷歌登录( Google )或华为登录( Huawei Login )或其他任何服务时,它将是。

代码语言:javascript
复制
if gmsAvailable {
   // execute GMS Code
} else if hmsAvailable {
   // execute HMS Code
}

注释*上面的代码在Kotlin

票数 11
EN

Stack Overflow用户

发布于 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:

代码语言:javascript
复制
if isGMSAvailable {
   // execute GMS Code
} else if isHMSAvailable {
   // execute HMS Code
}

通过这样做,您可以减少维护代码和添加新函数的后续工作负载。

票数 3
EN

Stack Overflow用户

发布于 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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58631362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档