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 ————————— ...
随机推荐
- 用CRT connect MongoDB 使用Backspace无效
这是个很蛋疼的小问题... 使用./mongo 10.1.235.62:27017 连接上后 打错了无法删除!? 这是在逗我,那就修改CRT个设置,点击选项,会话选项,仿真,把终端改成Linux就行了 ...
- HTML番外整理
经过一周的个人项目与一周的团体项目,我学到了一些有用的内容,特分享如下: 一.视频 1.对在线视频的添加 在各大网站打开一个视频,在下方的分享找到HTML代码,然后复制HTML代码到自己的代码中. 2 ...
- java静态代理
WorkIF.java package com.wzh.test; public interface WorkIf { void doWork(String name);} work.java pac ...
- Python应用02 Python服务器进化
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! **注意,在Python 3.x中,BaseHTTPServer, SimpleH ...
- 89、Android EditText 悬浮停靠
package com.willen.topFloatDemo; import android.content.Context; import android.os.Handler; import a ...
- android 定时执行一个任务
1. timer = new Timer(true) TimerTask task = new TimerTask(){ public void run(){ test(); } } timer.s ...
- CRM IFRAME 显示地图
作者:卞功鑫 ,转载请保留.http://www.cnblogs.com/BinBinGo/p/5274409.html 需要背景: 现在已经有经纬度,需要在地图上显示出来. 环境: CRM 4.0 ...
- 微信消息接收 验证URL有效性 C#代码示例
官方文档只给出了PHP的示例代码 开发者提交信息后,微信服务器将发送GET请求到填写的URL上,GET请求携带四个参数: 参数 描述 signature 微信加密签名,signature结合了开发者填 ...
- 立体匹配:关于Middlebury提供的源码的简化后的结构
- Python第九章模块和包
1.import Python文件的时候文件名不能跟Python中自带的关键字重复,否则无法使用关键字的方法. 2.Reload(),重载例子 import sysreload(sys)sys.set ...