1.下载open-sdk.jar文件和mta_sdk_x.x.x.jar文件拷贝到libs(或lib)目录下
这个链接 很容易的把环境配置好
http://wiki.connect.qq.com/%E5%88%9B%E5%BB%BA%E5%B9%B6%E9%85%8D%E7%BD%AE%E5%B7%A5%E7%A8%8B_android_sdk
2. 配置AndroidManifest
我配置错误
所以我加了Demo中的数据就可以了

    <activity android:exported="true" android:label="@string/app_name" android:launchMode="singleTask" android:name="com.tencent.sample.wxapi.WXEntryActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="sdksample" />
</intent-filter>
</activity>
<receiver android:name="com.tencent.sample.AppRegister" android:permission="com.tencent.mm.plugin.permission.SEND">
<intent-filter>
<action android:name="com.tencent.mm.plugin.openapi.Intent.ACTION_REFRESH_WXAPP" />
</intent-filter>
</receiver>
<activity android:name="com.tencent.connect.avatar.ImageActivity" />
<activity android:name="com.tencent.connect.common.AssistActivity" android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<activity android:launchMode="singleTask" android:name="com.tencent.tauth.AuthActivity" android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="tencent222222" />
</intent-filter>
</activity>

3.环境配置好了之后

创建自己的插件

4.

package cn.debi.cordova;
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 ="";
//private static final String APPID = "100363349";
private Tencent mTencent = null;
private CallbackContext mCallbackContext = null; @Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) {
mCallbackContext=callbackContext; if (action.equals("qqlogins")) {
this.qqLogin(); }else if(action.equals("qqLogout")){
Context context = this.cordova.getActivity().getApplicationContext(); mTencent.logout(context);
mCallbackContext.success(); }
else {
return false;
}
return true;
} public void qqLogin(){
// 创建授权认证信息
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();
e.printStackTrace();
} } protected void doComplete(JSONObject values) { } @Override
public void onError(UiError e) {
mCallbackContext.error(); } @Override
public void onCancel() { mCallbackContext.error(); } } }

5.qqlogin.js

 var exec = require('cordova/exec');

 exports.getqqlogin = function(messege,success, error) {
exec(success, error, "qqlogin", "qqlogins", [messege]);
};
exports.getqqlogout= function(messege,success, error) {
exec(success, error, "qqlogin", "qqlogout", [messege]);
};

6.plugin.xml

 <?xml version="1.0" encoding="utf-8"?>
<plugin id="cn.debi.cordova" version="0.0.1"
xmlns="http://apache.org/cordova/ns/plugins/1.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<name>qqlogin</name>
<description>Description</description>
<js-module name="qqlogin" src="www/qqlogin.js">
<clobbers target="cordova.plugins.qqlogin"/>
</js-module>
<platform name="android">
<config-file parent="/*" target="res/xml/config.xml">
<feature name="qqlogin">
<param name="android-package" value="cn.debi.cordova.qqlogin"/>
</feature>
</config-file>
<source-file src="src/android/qqlogin.java" target-dir="src/cn/debi/cordova"/>
</platform>
</plugin>

7.调用

 var extraInfo = cordova.require('cn.debi.cordova.qqlogin');
extraInfo.getqqlogin('cole.log',function(message) {
alert(message);
}, function(message) {
alert(message);
});

8.添加直接插件

cordova plugin add Login_QQ

9.完成

github 地址

qq 登录 cordova插件的更多相关文章

  1. dedecms织梦第三方登录插件-QQ登录、微博登录、微信登录

    织梦程序集成第三方QQ登录.微博登录.微信登录,获取QQ.微博.微信,并存储至数据库,一键注册为网站会员,不用再次填写绑定信息,方便粘贴用户更强. 织梦第三方登录效果 第三方登录插件特点 1.所有文件 ...

  2. cordova插件汇总

    1.获取当前应用的版本号 cordova plugin add cordova-plugin-app-version 2.获取网络连接信息 cordova plugin add cordova-plu ...

  3. cordova插件列表

    主要来源为http://blog.csdn.net/github_39500961/article/details/76270299 1.获取当前应用的版本号 cordova plugin add c ...

  4. cordova插件整理

    原文:cordova插件整理 1.获取当前应用的版本号 cordova plugin add cordova-plugin-app-version 2.获取网络连接信息 cordova plugin ...

  5. DISCUZ! X2.5设置仅允许QQ登录注册论坛 加固会员注册机制

    论坛稍微有点起色之后,很多站长就会担心论坛经常被人恶意灌水.注册机.顶贴机等等一些列非法的手段.通常站长都会通过一些后台的设置和插件等等一 切有效的方法预防,但更多的站长会通过限制用户注册会员,需注册 ...

  6. ionic2 如何引入第三方cordova插件

    例如:cordova-plugin-wechat 这个插件可以做微信登录,分享支付等 首先第一步:ionic plugin add cordova-plugin-wechat --variable w ...

  7. [Phonegap+Sencha Touch] 移动开发76 让cordova app訪问远端站点也能调用cordova插件功能

    原文链接:http://blog.csdn.net/lovelyelfpop/article/details/50735395 我相信.应该会有一些cordova开发人员想过实现以下这种app: 使用 ...

  8. 帝国CMS QQ登陆接口插件 适用于所有帝国7.2版本

    插件名称:帝国CMS-QQ登录插件 插件作者:帝国CMS官方 插件介绍:帝国CMS系统的QQ登录插件. 官方网站:http://www.phome.net ---------------------- ...

  9. 【开源】简单4步搞定QQ登录,无需什么代码功底【无语言界限】

    说17号发超简单的教程就17号,qq核审通过后就封装了这个,现在放出来~~ 这个是我封装的一个开源项目:https://github.com/dunitian/LoTQQLogin ————————— ...

随机推荐

  1. Navicat(连接) -1之Navicat Cloud

    Navicat Cloud Navicat Cloud 提供一个云服务,同步不同机器和平台的 Navicat 连接.查询.模型和虚拟组.当添加一个连接到 Navicat Cloud,它的连接设置和查询 ...

  2. 真假云主机,VPS资料集合

    资料来源: http://www.west263.com/services/CloudHost/pk.asp?ads=baidu912 用"云里雾里"形容中小企业用户对云计算的理解 ...

  3. sax,Dom,等解析方式地址 ?

    Android中使用SAX对XMl文件进行解析 http://blog.csdn.net/developer_jiangqq/article/details/7197045 使用SAX技术对XML文档 ...

  4. M2M

    1, M2M (数据算法模型) M2M是将数据从一台终端传送到另一台终端,也就是机器与机器(Machine to Machine)的对话.   M2M简介 但从广义上M2M可代表机器对机器(Machi ...

  5. JAVA 构造代码块

    class G{ G(){ System.out.println("我是无参构造方法"); } G(String name){ System.out.println("我 ...

  6. Axis2的下载和安装

    Axis2是一套崭新的WebService引擎,该版本是对Axis1.x重新设计的产物.Axis2不仅支持SOAP1.1和SOAP1.2,还集成了非常流行的REST WebService,同时还支持S ...

  7. 在MS CRM 4.0中引用JS文件

    引用: http://blog.csdn.net/qzw4549689/article/details/6027987 1.编写好JS代码,在ISV目录下新建一个目录javascripts,将JS文件 ...

  8. android SFC

    本系列适合0基础的人员,因为我就是从0开始的,此系列记录我步入Android开发的一些经验分享,望与君共勉!作为Android队伍中的一个新人的我,如果有什么不对的地方,还望不吝赐教. 在开始Andr ...

  9. [C#常用代码]如何把指定文件夹中的文件移动到指定的文件夹

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  10. Sqoop导数据出现的问题

    sqoop导数据卡住在INFO mapreduce.Job: Running job: job_1447835049223_0010 查yarn日志全是: INFO org.apache.hadoop ...