敬告:此 DEMO 演示为开放测试页面,仅用于开发者快速测试体验应用功能,请严格遵守开发者协议,了解更多。
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版 jsBridge-v20251019.zip,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
♦ 安卓 Android 版 取得 Android 客户端ID;
♦ 苹果 iOS 版 取得 iOS 客户端ID;
♦ Web 应用 取得服务器客户端ID;
♦ OAuth 同意屏幕 并添加测试用户;
//检测设备是否安装并启用了 Google Play 服务
//Android 版 Google 一键登录依赖于 Google Play 服务
//iOS 版始终返回可用
jsBridge.gid.googlePlayServicesAvailable(function(success, res) {
if (success) {
alert("可用")
} else {
alert("不可用" + JSON.stringify(res));
}
});
是否启用 Google 登录
googleId.enabled:
Android/iOS 客户端 ID
googleId.clientId:
Web 客户端 ID
googleId.serverClientId:
是否只显示以前登录时使用的帐户
googleId.filterByAuthorizedAccounts:
防重放一次性码
googleId.nonce:
是否启用密码账户登录
password.enabled:
当检索到一个凭据时是否自动登录
autoSelect:
//Google 一键登录,登录弹窗出现在屏幕底部; //请参考Google文档 //获取 Android & Web 客户端ID //获取 iOS 客户端 ID jsBridge.gid.signIn({ //Google账户登录 //iOS 必填 googleId: { //是否启用 enabled: {{signIn.googleId.enabled}}, //Android/iOS 客户端ID,iOS 端必填 clientId: "{{signIn.googleId.clientId}}", //Web 客户端ID,注意不是 Android/iOS 客户端ID //Android 端必填,iOS 端如需服务器验证则必填 serverClientId: "{{signIn.googleId.serverClientId}}", //是否只显示以前登录时使用的帐户,仅用于 Android 端 filterByAuthorizedAccounts: {{signIn.googleId.filterByAuthorizedAccounts}}, //可选,防重放一次性码,仅用于 Android 端 nonce: "{{signIn.googleId.nonce}}" }, //密码账户登录,仅用于 Android 端 password: { //是否启用 enabled: {{signIn.password.enabled}} }, //当检索到一个凭据时是否自动登录,仅用于 Android 端 autoSelect: {{signIn.autoSelect}} }, function(success, res) { if (success) { alert('成功,请在页面本页面底部查看 res 返回数据。'); //在本页面底部显示返回数据 showResult(res); } else { //失败 //Missing Feature{name=auth_api_credentials_begin_sign_in, version=8} ? //1. 确认 Android 测试设备的 Google Play 组件有效且版本不能过低,如果没有合适的测试设备可以找个手机厂商开放平台用海外版远程真机测试(如 OPPO 外销机型); //2. googleId.clientId 参数是 Android 或 iOS 客户端 ID,不要用 Web 的; //3. googleId.serverClientId 参数是 Web 客户端 ID,不要用 Android 或 iOS 端的; //4. 检查核对 google 平台上 Android/iOS 的包名与签名指纹; switch (res.errorCode) { case 100: { alert("设备的 Google Play 服务不可用"); break; } case 101: { alert(res.errorMessage); break; } case 102: { alert("取消了登录"); break; } case 103: { alert("网络错误"); break; } default: { alert(JSON.stringify(res)); break; } } } }); /* 成功时 res 返回 { //用户以 Google 账户登录时返回的 ID 令牌,在服务器端 验证 ID 令牌的完整性 idToken: "", displayName: "", familyName: "", givenName: "", phoneNumber: "", profilePicture: "", username: "用户ID", password: "" } */
Web 客户端 ID
serverClientId:
//旧版 Google 一键登录,登录弹窗出现在屏幕中间;
//如果未退出登录,本接口会直接返回上次登录的账号,不会出现登录弹窗;
jsBridge.gid.signIn2({
//Web 客户端ID,注意不是Android客户端ID
serverClientId: "{{signIn2.serverClientId}}"
}, function(success, res) {
if (success) {
alert('成功,请在页面本页面底部查看 res 返回数据。');
//在本页面底部显示返回数据
showResult(res);
} else {
//失败
alert(res.errorMessage);
}
});
/* 成功时 res 返回
{
//用户以 Google 账户登录时返回的 ID 令牌,在服务器端 验证 ID 令牌的完整性
idToken: "",
displayName: "",
familyName: "",
givenName: "",
profilePicture: "",
username: "用户ID"
}
*/
//停用自动登录功能,直到用户重新登录为止
jsBridge.gid.signOut(function(){
alert("已退出");
});