欢迎访问 夜阑小雨 我的学习碎片档案,这里记录了我的学习内容和工作中经验,希望给您带去帮助。

phonegap-第三方登陆-andriod插件

Android开发 夜阑小雨 4525℃ 0评论

[目前插件已经支持到Phonegap 3.5]

我们再开发app过程中,不断有各种需求。业务的处理也越来越简洁。

第三方登陆就是微了再app中通过第三方账号来快速完成注册登陆的过程。

通过几天的折腾和开发,终于完成了第三方登陆插件。

该插件是基于百度社会化sdk来完成。

该插件封装了的模块包括支持新浪微博,腾讯微博,QQ空间,开心网,人人网,百度等社交平台的授权。

具体如何设置登陆信息请到百度开发者中心设置。

http://developer.baidu.com/wiki/index.php?title=docs/social/guide/web_login/web_login3。

该插件兼容,百度社会化分享插件,百度推送,百度定位,百度地图等百度系模块插件。

如果已经集成了百度社会化分享插件,集成第三方登陆插件就非常简单。

可以忽略掉 第2 第 3第 5第 6步骤。

01 02 03

 

 

 

 

 

 

 

 

 

 

0405

 

 

 

 

 

 

 

 

 

 

1.下载插件包。

2. 解压所下载的包,从lib目录中得到所需要的所有的库:

Baidu-SocialShare-SDK-Android-2.0.0.jar

添加到你的项目中。

 

3. 修改AndroidManifest.xml,增加以下权限:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
4. 在AndroidManifest.xml中增加jar中需要的Activity
<activity android:name="com.baidu.cloudsdk.social.oauth.SocialOAuthActivity"
            android:exported="true"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen">
        </activity>

        <activity
            android:name="com.baidu.cloudsdk.social.share.handler.LocalShareActivity"
            android:launchMode="singleTask">
        </activity>

        <activity android:name="com.baidu.cloudsdk.social.share.handler.QQFriendShareReceiverActivity"
            android:launchMode="singleTask">
              <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="tencent此处为腾讯开放平台APPKey" />
            </intent-filter>
        </activity>

5.拷贝src文件夹里面的java文件到你的src中.

6. 拷贝assert目录下config.json文件到你的项目对应文件夹里面。并修改为自己的信息。
{
client_ids:
{
baidu:"填写在百度开发者中心注册的app key",
sinaweibo:"填写在微博开放平台注册的app key",
qqdenglu:"填写在腾讯开放平台注册的app key",
qqfriend:"填写在腾讯开放平台注册的app key",
weixin:"填写在微信开放平台注册的app key"
},
client_names:
{
qqfriend:"分享给qq好友所要显示的应用名称"
},
supported_medias:
["sinaweibo","qqweibo","qqdenglu","kaixin","renren","qqfriend","weixin","weixin_timeline","email","sms"]
}

这些信息可以参考百度开发者中心帮助文档来申请。
 具体的如何设置可以看他们的帮助文档。

00

 

7.在config.xml文件下面引入插件.

2.x  和3.x 的插件添加代码是不同的,一点注意!具体可以参考官网。

2.x插件引入方法:

<plugin name=”Pgbaidulogin” value=”com.breadth.pgtest.Pgbaidulogin”/>

3.x插件引入方法:

<feature name=”Pgbaidulogin”>
<param name=”android-package” value=”com.xhuayi.dgoula.Pgbaidulogin” />
</feature>

8. 修改html代码

引入Pgbaidulogin.js文件到主文件里面index.html

function sina(){

window.plugins.Pgbaidulogin.sina(
function(success) {
alert(success);
var data = JSON.parse(success) ;
$(“#info”).css(“display”,”block”);
$(“#headerimg”).attr(“src”,data.tinyurl);
$(“.username”).html(data.username);
$(“.sex”).html(data.sex);
$(“.city”).html(data.province+data.city);
$(“.media_type”).html(data.media_type);
$(“.social_uid”).html(data.social_uid);
}, function(fail) {
alert(“encoding failed: ” + fail);
}
);

}

function kaixin(){

window.plugins.Pgbaidulogin.kaixin(
function(success) {
alert(success);

var data = JSON.parse(success) ;
$(“#info”).css(“display”,”block”);
$(“#headerimg”).attr(“src”,data.tinyurl);
$(“.username”).html(data.username);
$(“.sex”).html(data.sex);
$(“.city”).html(data.province+data.city);
$(“.media_type”).html(data.media_type);
$(“.social_uid”).html(data.social_uid);
}, function(fail) {
alert(“encoding failed: ” + fail);
}
);

}

function qq(){

window.plugins.Pgbaidulogin.qq(
function(success) {
alert(success);
var data = JSON.parse(success) ;
$(“#info”).css(“display”,”block”);
$(“#headerimg”).attr(“src”,data.tinyurl);
$(“.username”).html(data.username);
$(“.sex”).html(data.sex);
$(“.city”).html(data.province+data.city);
$(“.media_type”).html(data.media_type);
$(“.social_uid”).html(data.social_uid);
}, function(fail) {
alert(“encoding failed: ” + fail);
}
);

}

function qqweibo(){

window.plugins.Pgbaidulogin.qqweibo(
function(success) {
alert(success);
var data = JSON.parse(success) ;
$(“#info”).css(“display”,”block”);
$(“#headerimg”).attr(“src”,data.tinyurl);
$(“.username”).html(data.username);
$(“.sex”).html(data.sex);
$(“.city”).html(data.province+data.city);
$(“.media_type”).html(data.media_type);
$(“.social_uid”).html(data.social_uid);
}, function(fail) {
alert(“encoding failed: ” + fail);
}
);

}

function renren(){

window.plugins.Pgbaidulogin.renren(
function(success) {
alert(success);
var data = JSON.parse(success) ;
$(“#info”).css(“display”,”block”);
$(“#headerimg”).attr(“src”,data.tinyurl);
$(“.username”).html(data.username);
$(“.sex”).html(data.sex);
$(“.city”).html(data.province+data.city);
$(“.media_type”).html(data.media_type);
$(“.social_uid”).html(data.social_uid);
}, function(fail) {
alert(“encoding failed: ” + fail);
}
);

}

function baidu(){

window.plugins.Pgbaidulogin.baidu(
function(success) {
alert(success);
var data = JSON.parse(success) ;
$(“#info”).css(“display”,”block”);
$(“#headerimg”).attr(“src”,data.tinyurl);
$(“.username”).html(data.username);
$(“.sex”).html(data.sex);
$(“.city”).html(data.province+data.city);
$(“.media_type”).html(data.media_type);
$(“.social_uid”).html(data.social_uid);
}, function(fail) {
alert(“encoding failed: ” + fail);
}
);
}

这里的方法是我自己测试用的,可以自己选用,

再处理登陆后如何和自己的用户体系绑定账号,从而达到登陆后直接注册用户。

请看我上一篇文章: 第三方平台账号登入流程总结

我这里已经提供一个social_uid 作为用户唯一id标示。当用户登陆后将此值和自己的用户体系的id绑定注册一个新用户。

这样当用户下次再用同样的第三方账号登陆,就直接登陆app。

注意:第三方登陆后,社会化分享时候用到的账信息就已经存在不需要再登陆后再分享!

转载请注明:夜阑小雨 » phonegap-第三方登陆-andriod插件

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址