如何解决如何在 react-native 应用程序中关闭不受支持的 Google Play 服务提示
我将与 Google 地图一起运行的 react-native-maps 添加到我的项目中。在没有 GMS(谷歌移动服务)的华为设备上,当应用程序启动时,我得到这个提示:
如何在没有 GMS 的设备上禁用此确认对话框? (喜欢这个答案)
或
是否有任何解决方法可以在 GMS 上安装 react-native-maps
并在 HMS 上安装 @hmscore/react-native-hms-map
并以适当的方式(取决于设备 GMS/HMS 核心)将其作为模块导入到 javascript 端?
解决方法
Google 禁令后发布的华为手机不支持 GMS。
这里我为您提供三个选项:
选项 1:在 HUAWEI AppGallery 和 Google Play 上使用不同的软件包发布您的应用。您在 AppGallery 上发布的应用仅包含华为的逻辑代码。有关多渠道包装的详细信息,请参阅docs。
选项 2:在华为应用市场和 Google Play 上发布相同的应用。添加以下代码,判断是否有GMS API或HMS API,并调用可用的API:
function tweetS3DaysLeft()
{
console.log("Starting...");
let spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
let sheet = spreadsheet.getSheetByName("tweetS3DaysLeft");
console.log("Sending tweet...");
//Starting values for the dates
let DaysUntil = 316
let DaysFrom = 1
//Increase and decrease dates
DaysUntil = DaysUntil - 1
DaysFrom = DaysFrom +1
// Build the tweet
let tweetText = "Splatoon 3 is at least " + DaysUntil + " days until launch, and has been " + DaysFrom + " days since the first trailer";
// Tweet
sendTweet(tweetText);
}
可以手动添加代码,也可以使用HMS ToolKit实现G+H逻辑判断。
方案三: 如果您只想在 RN 中抑制此对话框抱怨“此设备中没有可用的谷歌服务......”,这可以通过关闭 Google Play 服务可用性错误来实现:
public boolean isGMS(){
return GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(this) == com.google.android.gms.common.ConnectionResult.SUCCESS;
}
public boolean isHMS(){
return HuaweiApiAvailability.getInstance().isHuaweiMobileServicesAvailable(this) == com.huawei.hms.api.ConnectionResult.SUCCESS;
}
有关详细信息,请访问此 link。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。