qq 登录 cordova插件
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.完成
qq 登录 cordova插件的更多相关文章
- dedecms织梦第三方登录插件-QQ登录、微博登录、微信登录
织梦程序集成第三方QQ登录.微博登录.微信登录,获取QQ.微博.微信,并存储至数据库,一键注册为网站会员,不用再次填写绑定信息,方便粘贴用户更强. 织梦第三方登录效果 第三方登录插件特点 1.所有文件 ...
- cordova插件汇总
1.获取当前应用的版本号 cordova plugin add cordova-plugin-app-version 2.获取网络连接信息 cordova plugin add cordova-plu ...
- cordova插件列表
主要来源为http://blog.csdn.net/github_39500961/article/details/76270299 1.获取当前应用的版本号 cordova plugin add c ...
- cordova插件整理
原文:cordova插件整理 1.获取当前应用的版本号 cordova plugin add cordova-plugin-app-version 2.获取网络连接信息 cordova plugin ...
- DISCUZ! X2.5设置仅允许QQ登录注册论坛 加固会员注册机制
论坛稍微有点起色之后,很多站长就会担心论坛经常被人恶意灌水.注册机.顶贴机等等一些列非法的手段.通常站长都会通过一些后台的设置和插件等等一 切有效的方法预防,但更多的站长会通过限制用户注册会员,需注册 ...
- ionic2 如何引入第三方cordova插件
例如:cordova-plugin-wechat 这个插件可以做微信登录,分享支付等 首先第一步:ionic plugin add cordova-plugin-wechat --variable w ...
- [Phonegap+Sencha Touch] 移动开发76 让cordova app訪问远端站点也能调用cordova插件功能
原文链接:http://blog.csdn.net/lovelyelfpop/article/details/50735395 我相信.应该会有一些cordova开发人员想过实现以下这种app: 使用 ...
- 帝国CMS QQ登陆接口插件 适用于所有帝国7.2版本
插件名称:帝国CMS-QQ登录插件 插件作者:帝国CMS官方 插件介绍:帝国CMS系统的QQ登录插件. 官方网站:http://www.phome.net ---------------------- ...
- 【开源】简单4步搞定QQ登录,无需什么代码功底【无语言界限】
说17号发超简单的教程就17号,qq核审通过后就封装了这个,现在放出来~~ 这个是我封装的一个开源项目:https://github.com/dunitian/LoTQQLogin ————————— ...
随机推荐
- [物理学与PDEs]书中出现的向量公式汇总
P 11 1. $\rot (\phi{\bf A})=\n \phi\times{\bf A}+\phi\ \rot{\bf A}$. 2. $-\lap {\bf A}=\rot\rot {\bf ...
- 【JavaScript】创建命名空间,Class,LOG
JxUnderscore(function (J, _, root) { var isWindow, deepObject, Namespace, Class, LOG; /** * 一个对象是否为w ...
- Yii2.0 实现三级联动 [ 2.0 版本 ]
view中代码 <?php use yii\bootstrap\ActiveForm; /* @var $this yii\web\View */ /* @var $form yii\boots ...
- 使用gson-1.6.jar解析json
package com.example.mars_2900_json01; import java.io.StringReader; import java.lang.reflect.Type; im ...
- window和nodejs作用域区别(待续)
//这是在浏览器环境下,chrome下 var n =2 ; var obj={ n:4, fn1:(function(){ console.log("fn1->this =" ...
- C++学习48 对ASCII文件的读写操作
如果文件的每一个字节中均以ASCII代码形式存放数据,即一个字节存放一个字符,这个文件就是ASCII文件(或称字符文件).程序可以从ASCII文件中读入若干个字符,也可以向它输出一些字符. 对ASCI ...
- 一机运行多个resin的配置
对于java应用服务器,常用的一般为tomcat.jboss.resin. 一. 概述 经常会有这种情况: 1.一台服务器上,跑多个java应用 2.网站负载高,需要采用负载均衡(轮询)的方式来解决 ...
- editplus格式化xml文档
使用editplus打开xml文档,发现文件内容没有格式化,非常难看,使用IE9打开这个xml文档是格式化的,但是IE9打开不能编辑. 在网上找了一些资料发现能够通过一个小插件来是editplus格式 ...
- TFS如何设置在客户端独占签出
步骤:1.打开源代码管理资源管理器,点击“工作区”的下拉框,选择,“工作区”2.选择编辑3.选择“高级”4.进入编辑工作区,tfs中“位置”选项中,默认的时本地,如果想独占签出,这里我们就必须设置成“ ...
- 手机端的各种默认样式比如 ios的按钮变灰色
1.ios按钮变灰色,给按钮加样式: -webkit-appearance: none; 2.有圆角话 ; } 3.去除Chrome等浏览器文本框默认发光边框 input:focus, textare ...