Mac*_*cki 20 android google-play-services react-native huawei-mobile-services
很快,新的华为手机将停止支持 Google Play 和 Google 移动服务。
华为正在准备自己的名为 HMS 的生态系统https://developer.huawei.com/consumer/en/service/hms/developer.html
他们的应用商店叫做“Huawei App Gallery”,这里有它的文档:https : //developer.huawei.com/consumer/en/doc/30202
他们现在正在向开发人员(包括我)发送消息,鼓励他们向他们的商店发布应用程序。他们声称他们只需要一个 APK 文件,不需要对应用程序进行任何更改。
我的问题是:
华为已经发布了华为移动服务,目前正在逐步更新其服务,以与谷歌和苹果紧密匹配。至于你问的问题
是的,只要你能生成一个apk上传到他们的华为应用程序库。您不必进行任何代码更改。
这取决于您尝试整合到应用程序中的服务类型,例如,如果您尝试使用 Firebase 提供的身份验证模块使用 Google 登录,那么它不会仅在不包含 GMS(Google 移动服务)的手机上受支持) 这是华为 Mate 30 Pro。
但是,如果您正在查看通知。谷歌有 Firebase Cloud Messaging,华为有华为推送通知。您可以使用任何一种,因为这取决于后端服务的架构,并且将在所有 android 设备上受支持。
这完全取决于您如何构建系统和应用程序中所需的服务。假设您希望将华为登录纳入您的应用程序中,并且您还需要包含 HMS,但是这些您希望在华为应用程序库中维护,对于 Google,您已经实现了 FCM 和 Google 登录和地图,那么您将拥有维护两个不同的分支,这些分支共享共同的核心功能,这既费时又费钱。
如果应用程序只使用纯粹依赖逻辑的裸功能,并且很少或没有 GMS/HMS,那么您不必为您的项目维护单独的分支,一个就足够了。您只需要向您的 Google Play Publish 和华为应用程序库提交一个版本。
如果您想对 GMS 和 HMS 使用单个存储库,则必须检查可用的服务以启用该功能。
对于 GMS
val gmsAvailable = GooglePlayServicesUtil.getInstance().isGooglePlayServicesAvailable(mContext)
Run Code Online (Sandbox Code Playgroud)
对于 HMS
val hmsAvailable = HuaweiApiAvailability.getInstance().isHuaweiMobileServicesAvailable(mContext)
Run Code Online (Sandbox Code Playgroud)
所以当尝试使用谷歌登录或华为登录或任何其他服务时,它会。
if gmsAvailable {
// execute GMS Code
} else if hmsAvailable {
// execute HMS Code
}
Run Code Online (Sandbox Code Playgroud)
注意* 以上代码在 Kotlin 中
| 归档时间: |
|
| 查看次数: |
7437 次 |
| 最近记录: |