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. sql中count(*)和count(字段名)区别

    数据测试:见图 sql 语句见分晓: SELECT COUNT(*) c1 ,COUNT(ADDRESS) c2 FROM test 显而易见,count(*)统计的是结果集的总条数,count(字段 ...

  2. [运维-服务器 – 1A] – nginx.conf(转)

    #定义Nginx运行的用户和用户组user www www; #nginx进程数,建议设置为等于CPU总核心数.worker_processes 8; #全局错误日志定义类型,[ debug | in ...

  3. ubuntu 16.04 小键盘数字键盘开机自动启动

    ubuntu 16.04 小键盘数字键盘开机自动启动 最近安了ubuntu 16.04,用windows用久了,换一个也挺好玩的! 但ubuntu 16.04因为算是最新的吧,还是存在些令我们不适应的 ...

  4. UCOS-2 消息邮箱与队列

    一个有趣的网络解释: 信号量就是中央政府发给官人做一方大员的官印,有很多种官印但是不能一印多发,得到官印者才能掌权鱼肉一方百姓(任务得到信号量才能运行),否则你就只要等官跑官.(当然官印也可随时被政府 ...

  5. cvc-elt.1: 找不到元素 'beans' 的声明

    这次遇到的这个错误又坑爹又低级 , 是因为网上抄到了错误的xsd搞的. 这是网上抄到的 xsi:schemalocation=" http://www.springframework.org ...

  6. 数据库事务 及ACID

    数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行. 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永 ...

  7. Notepad++隐藏的用法

    Notepad++是一个非常强大的文本编辑器. 它里面有很多有用的插件. 我认为对我比较有帮助的一个是NppExporter.它可以将Notepad++中彩色的代码原样的复制到Word中. 想要获得彩 ...

  8. android studio 安装报错 unable to run mksdcard sdk tool

    搜了一下原来缺少这个 sudo apt-get install lib32z1 lib32ncurses5  lib32stdc++6

  9. 理论沉淀:隐马尔可夫模型(Hidden Markov Model, HMM)

    理论沉淀:隐马尔可夫模型(Hidden Markov Model, HMM) 参考链接:http://www.zhihu.com/question/20962240 参考链接:http://blog. ...

  10. Hibernate注解:一对一主键关联

    情形:两个表,my_site和my_site_company,通过主键site_id唯一关联.my_site的主键是自动增加,my_site_company的主键依赖于my_site. # # Sou ...