当前位置: 首页 > news >正文

北京城乡建设厅网站全网网站推广

北京城乡建设厅网站,全网网站推广,网站开发时如何设计英文版本,石家庄企业商城版网站建设一、接入的准备工作 官方文档链接地址:开始使用一键登录和注册 按照步骤进行接入即可 二、项目参考(Unity项目) 注意:代码版本如果不适用新的Google API 请自行参考最新版本接口 SDKGoogleSignInActivity 主要用于登录的代码。Un…

一、接入的准备工作

官方文档链接地址:开始使用一键登录和注册

按照步骤进行接入即可

二、项目参考(Unity项目)

注意:代码版本如果不适用新的Google API 请自行参考最新版本接口

SDKGoogleSignInActivity 主要用于登录的代码。UnityPlayer.UnitySendMessage的参数按照自己项目填写,com.xxxxx.my也是填写自己项目的路径。

package com.xxxxx.my;import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.TextView;import com.zhijingweilai.domino.R;
import com.google.android.gms.auth.api.signin.GoogleSignIn;
import com.google.android.gms.auth.api.signin.GoogleSignInAccount;
import com.google.android.gms.auth.api.signin.GoogleSignInClient;
import com.google.android.gms.auth.api.signin.GoogleSignInOptions;
import com.google.android.gms.common.SignInButton;
import com.google.android.gms.common.api.ApiException;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.unity3d.player.UnityPlayer;/*** Activity to demonstrate basic retrieval of the Google user's ID, email address, and basic* profile.*/
public class SDKGoogleSignInActivity extends AppCompatActivity {private static final String TAG = "SignInActivity";private static final int RC_SIGN_IN = 1234; // Can be any integer unique to the Activity.private GoogleSignInClient mGoogleSignInClient;private TextView mStatusTextView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// [START configure_signin]// Configure sign-in to request the user's ID, email address, and basic// profile. ID and basic profile are included in DEFAULT_SIGN_IN.String clientId = getString(R.string.server_client_id);GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN).requestEmail().requestIdToken(clientId).build();// [END configure_signin]// [START build_client]// Build a GoogleSignInClient with the options specified by gso.mGoogleSignInClient = GoogleSignIn.getClient(this, gso);// [END build_client]}public void SendLogin() {GoogleSignInAccount account = GoogleSignIn.getLastSignedInAccount(this);if (account != null && !account.isExpired()) {updateUI(account, "");}elsesignIn();}// [START onActivityResult]@Overridepublic void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);// Result returned from launching the Intent from GoogleSignInClient.getSignInIntent(...);if (requestCode == RC_SIGN_IN) {// The Task returned from this call is always completed, no need to attach// a listener.Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data);handleSignInResult(task);}}// [END onActivityResult]// [START handleSignInResult]private void handleSignInResult(Task<GoogleSignInAccount> completedTask) {try {GoogleSignInAccount account = completedTask.getResult(ApiException.class);// Signed in successfully, show authenticated UI.updateUI(account, "");} catch (ApiException e) {// The ApiException status code indicates the detailed failure reason.// Please refer to the GoogleSignInStatusCodes class reference for more information.Log.w(TAG, "signInResult:failed code=" + e.getStatusCode());updateUI(null, e.toString());}}// [END handleSignInResult]// [START signIn]public void signIn() {Intent signInIntent = mGoogleSignInClient.getSignInIntent();startActivityForResult(signInIntent, RC_SIGN_IN);}// [END signIn]// [START signOut]public void signOut() {mGoogleSignInClient.signOut().addOnCompleteListener(this, new OnCompleteListener<Void>() {@Overridepublic void onComplete(@NonNull Task<Void> task) {String str = new JsonToString().AddJSONObject("result", 0).AddJSONObject("msg", "signout").GetString();Log.i("Google", "Google SignOut str=" + str);UnityPlayer.UnitySendMessage("SDK_callback", "OnGGSignOutResult", str);finish();}});}// [END signOut]// [START revokeAccess]public void revokeAccess() {mGoogleSignInClient.revokeAccess().addOnCompleteListener(this, new OnCompleteListener<Void>() {@Overridepublic void onComplete(@NonNull Task<Void> task) {String str = new JsonToString().AddJSONObject("result", 0).AddJSONObject("msg", "revokeAccess").GetString();Log.i("Google", "Google RevokeAccess str=" + str);UnityPlayer.UnitySendMessage("SDK_callback", "OnGGRevokeAccessResult", str);finish();}});}// [END revokeAccess]private void updateUI(@Nullable GoogleSignInAccount acct, String err) {if (acct != null){String idToken = acct.getIdToken();String personName = acct.getDisplayName();String personGivenName = acct.getGivenName();String personFamilyName = acct.getFamilyName();String personEmail = acct.getEmail();String personId = acct.getId();Uri personPhoto = acct.getPhotoUrl();Log.i("Google", "Google SignIn URI=" + personPhoto.toString());Log.i("Google", "Google SignIn URI=" + personPhoto.getPath());Log.i("Google", "Google SignIn URI=" + personPhoto.getQuery());String str = new JsonToString().AddJSONObject("result", 0).AddJSONObject("msg", "signin").AddJSONObject("refresh_token", idToken).AddJSONObject("personName", personName).AddJSONObject("personGivenName", personGivenName).AddJSONObject("personFamilyName", personFamilyName).AddJSONObject("personEmail", personEmail).AddJSONObject("loginId", personId).AddJSONObject("iconUrl", personPhoto.toString()).GetString();Log.i("Google", "Google SignIn str=" + str);UnityPlayer.UnitySendMessage("SDK_callback", "OnGGSignInResult", str);acct = null;}else{String str = new JsonToString().AddJSONObject("result", 1).AddJSONObject("msg", "signin").AddJSONObject("err", err).GetString();Log.i("Google", "Google SignIn str=" + str);UnityPlayer.UnitySendMessage("SDK_callback", "OnGGSignInResult", str);}finish();}}

 JsonToString 用于处理数据,将json数据转成string方便传输

package com.xxxxx.my;import org.json.JSONObject;public class JsonToString {private JSONObject jsonObj;public JsonToString(){jsonObj = new JSONObject();};public JsonToString AddJSONObject(String key, Object val) {try {jsonObj.put(key, val);}catch(Exception e) {}return this;}public String GetString(){String str = jsonObj.toString();return str;}
}

http://www.hkea.cn/news/968706/

相关文章:

  • 阿里巴巴网站导航栏怎么做口碑营销策划方案
  • 线上做交互的网站百度app下载
  • 做暖暖欧美网站挖掘爱站网
  • 网站 风格百度推广公司
  • 林州网站建设公司站长工具关键词排名怎么查
  • 想给公司做个网站微信seo是什么意思
  • 网站做管制户外刀具营销推广方案模板
  • 淘宝客网站免费做seo网站关键词优化机构
  • 企业做网站建设的好处seo网站关键词优化
  • 一般网站用什么做的最新新闻国内大事件
  • 做线上网站需要钱吗互联网营销推广
  • 找个美工做淘宝网站需要多少钱南昌seo方案
  • 网站用户登录流程图外贸高端网站设计公司
  • 做搜狗手机网站优化软代写
  • wordpress页面背景颜色win7优化设置
  • 做分类信息网站代码百度搜索推广优化师工作内容
  • 南京网站开发公司关键词推广
  • 合水口网站建设百度指数明星人气榜
  • 上传网站图片处理推广软件免费
  • 做网站怎么写代码下载百度软件
  • 县城做网站网站搭建关键词排名
  • b2b多平台一键发布seo需要掌握哪些技术
  • 网站建设推广合同网络广告联盟
  • 汽车网站正在建设中模板什么是营销模式
  • 宜昌seo百度seo优化
  • 做网站公司q房网seo快速排名站外流量推广
  • 南宁网站排名优化广州发布紧急通知
  • 网站建设的策划方案seo排名
  • 网站模板绑定域名培训班
  • coupang入驻条件2022台州关键词优化报价