package com.example.cordova.qqLogin; import java.text.SimpleDateFormat; import org.apache.cordova.CallbackContext; import org.apache.cordova.CordovaPlugin; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.widget.Toast; import com.tencent.tauth.IUiListener; import com.tencent.tauth.UiError; import com.tencent.tauth.Tencent; public class QQLogin extends CordovaPlugin{ public static final String APPID ="123456789"; private Tencent mTencent = null; private CallbackContext mCallbackContext = null; @Override public boolean execute(String action, JSONArray args, CallbackContext callbackContext) { mCallbackContext=callbackContext; if (action.equals("ssoLogin")) { this.ssoLogin(); }else if(action.equals("ssoLogout")){ Context context = this.cordova.getActivity().getApplicationContext(); mTencent.logout(context); mCallbackContext.success(); } else { return false; } return true; } public void ssoLogin(){ // 创建授权认证信息 final Activity activity = this.cordova.getActivity(); Context context = this.cordova.getActivity().getApplicationContext(); mTencent = Tencent.createInstance(APPID, context); final IUiListener listener = new BaseUiListener() { @Override protected void doComplete(JSONObject values) { } }; this.cordova.getActivity().runOnUiThread(new Runnable() { @Override public void run() { mTencent.login(activity, "all", listener); } }); } private class BaseUiListener implements IUiListener { @Override public void onComplete(Object response) { String uid=mTencent.getOpenId(); String token=mTencent.getAccessToken(); Log.d("uid111",uid); JSONObject res=new JSONObject(); try { res.put("uid", uid); res.put("token", token); mCallbackContext.success(res); } catch (JSONException e) { // TODO Auto-generated catch block mCallbackContext.error(0); e.printStackTrace(); } } protected void doComplete(JSONObject values) { } @Override public void onError(UiError e) { mCallbackContext.error(0); } @Override public void onCancel() { mCallbackContext.error(0); } } }