更新记录

V1.0.91(2022-08-11)

新增AuthCode返回,新增Scope授权

V1.0.9(2022-08-10)

修复登录报错的问题

V1.0.8(2022-08-08)

新增可选scope授权和serverClientID授权

查看更多

平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 11.0 armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 适用版本区间:9 - 14

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


JY-GoogleSignin插件使用说明

如果有问题或者其他需求(如新增方法等),可联系我处理;
如果有其他原生插件需要定制开发,也可以联系我开发。



我的QQ是:374850759 (加好友麻烦备注:JY-GoogleSignin插件(谷歌登录))

注意:

插件示例工程,所有的方法都是做的按钮点击事件,具体的方法调用是按照自己业务来进行; 使用插件前,请先到第三方里面注册账号、创建应用,才能拿到后续插件里面使用的client_id

一、插件使用流程(原生插件调试,都需要自定义基座)

1.项目配置JY-GoogleSignin插件 a.找到项目manifest.json,APP原生插件配置 b.勾选JY-GoogleSignin(有试用和已购买两种方式,如果前期调试,建议试用,没问题了再购买) c.保存一下代码(有的时候HBX有bug,所以建议保存一下代码)

2.引用原生插件

const JYGoogleSignin = uni.requireNativePlugin('JY-GoogleSignin');

二、iOS特殊配置(如果是测试iOS,请记得一定要先配置这个方法!!!!!)

再确保完成上述的插件引入后,再做此项配置

a.找到项目manifest.json,源码视图,找到这个节点=== app-plus -> distribute -> ios (初始化项目一般只到这个节点,如果没有,可以自己新增) b.新增如下配置 "urltypes" : [ { "urlidentifier" : "com.googleusercontent.apps.746568146308-", "urlschemes" : [ "com.googleusercontent.apps.746568146308-" ] } ] urlidentifier和urlschemes的值为谷歌登录后台Client_id的值,做翻转以后的; (原始的值应该是:77273717237127-****.apps.googleusercontent.com 翻转以后就是:com.googleusercontent.apps.77273717237127-****

c.保存一下代码(有的时候HBX有bug,所以建议保存一下代码)

三、谷歌登录初始化(其他方法调用前,一定要先调用这个方法!)

再确保完成上述的插件引入后,再调用初始化的方法

JYGoogleSignin.jy_init({
    //  安卓的client_id应该是谷歌开发者后台默认Web应用的;iOS的client_id应该是谷歌开发者后台iOS对应的
    client_id: "******"
}, res=> {
    //    这里不会有返回数据
})
jy_init新增参数serverClient_id/scopes;非必传

serverClient_id 传递一个字符串
scopes 为数组,仅支持传递一个值

例如(按需):
JYGoogleSignin.jy_init({
    //  安卓的client_id应该是谷歌开发者后台默认Web应用的;iOS的client_id应该是谷歌开发者后台iOS对应的
    client_id: "******",
    serverClient_id: "",
    scopes: [
        "https://www.googleapis.com/auth/drive.file"
    ]
}, res=> {
    //    这里不会有返回数据
})

四、唤起登录页面(iOS/Android)

jy_startLogin

JYGoogleSignin.jy_startLogin(res=> {
//  这里会返回登录的结果,如果errorCode = 1,代表错误,可检查msg返回的数据判断;如果errorCode = 0,代表成功,也会在data里面返回登录数据
console.log(JSON.stringify(res));
uni.showToast({
icon:'none',
title:JSON.stringify(res)
})
})

五、检查登录信息(iOS/Android),登录前应该先检查是否有登录信息,如果有,则可以继续使用

jy_getLastSigned

JYGoogleSignin.jy_getLastSigned(res=> {
//  这里会返回登录的结果,如果errorCode = 1,代表未登录;如果errorCode = 0,代表已登录,也会在data里面返回登录数据
console.log(JSON.stringify(res));
uni.showToast({
icon:'none',
title:JSON.stringify(res)
})
})

六、退出登录

jy_logout

JYGoogleSignin.jy_logout(res=> {
//  不会返回数据,调用就成功
})

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件使用的 GoogleSignin SDK会采集数据,详情可参考https://developers.google.com/identity/sign-in/ios/start

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问