android - 反应原生谷歌登录错误取消
问题描述
当我按下谷歌登录按钮控制台日志时,它显示错误4:取消我不知道是什么问题,谁能告诉我这个问题?下面的 app.js 代码将在显示被取消的控制台日志错误 4 中一一显示控制台错误。
我的 MainApplication.java
import co.apptailor.googlesignin.RNGoogleSigninPackage;
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new RNGoogleSigninPackage()
);
}
code:
Code i used in android /app/build.gradle
android/app/build.gradle
dependencies {
implementation(project(":react-native-google-signin")){
exclude group: "com.google.android.gms"
}
implementation 'com.google.android.gms:play-services-auth:15.0.0'
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
implementation "com.facebook.react:react-native:+"
}
task copyDownloadableDepsToLibs(type: Copy) {
from configurations.compile
into 'libs'
}
我在 android /build.gradle 中使用的代码
android/build.gradle buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.4'
classpath 'com.google.gms:google-services:3.2.1'
}
}
allprojects {
repositories {
mavenLocal()
maven {url "https://maven.google.com"}
jcenter()
google()
maven {
url "$rootDir/../node_modules/react-native/android"
}
}
}
task wrapper(type: Wrapper) {
gradleVersion = '4.4'
distributionUrl = distributionUrl.replace("bin", "all")
}
APP.js
import { GoogleSignin, GoogleSigninButton,statusCodes } from 'react-native-google-signin';
export default class App extends Component {
componentWillMount(){
GoogleSignin.configure({
scopes: ['https://www.googleapis.com/auth/drive.readonly'],
webClientId: '***',
});
}
signIn = async () => {
try {
await GoogleSignin.hasPlayServices();
const userInfo = await GoogleSignin.signIn();
this.setState({ userInfo });
console.log(userInfo);
} catch (error) {
if (error.code === statusCodes.SIGN_IN_CANCELLED) {
console.log('1'+error);
// user cancelled the login flow
} else if (error.code === statusCodes.IN_PROGRESS) {
console.log('2'+error);
// operation (f.e. sign in) is in progress already
} else if (error.code === statusCodes.PLAY_SERVICES_NOT_AVAILABLE) {
console.log('3'+error);
// play services not available or outdated
} else {
console.log('4'+error);
// some other error happened
}
}
};
解决方案
推荐阅读
- c# - 如何从 python *在同一进程中运行 c# 代码*?
- python - 如何向使用 nx.shortest_path 创建的路线添加一个点?
- typo3 - 在详细视图中插入媒体图像
- sql - 出现错误 在执行 DB2 EXPORT IXF 时处理 Action String 参数中的 SELECT 字符串时出现 SQL 错误“-204”?
- excel - 将大字符串与excel中的百分比差异进行比较
- reactjs - 在 react-dates 中突出显示某些日期
- reactjs - 从 redux-saga 函数访问 React 上下文值
- angular - 从指令中创建/获取 TemplateRef
- javascript - 从 firebase 获取数据,但它显示“不变违规对象作为 React 子项无效”并建议使用数组而不是对象
- c# - 解析字符串以转换为枚举类型