相信做开发的猿友们肯定会接触三方分享,那么三方分享怎么具体集成呢,当初我吃过苦头,现在想为新手们写一个详细的集成介绍。大神请自行走开。。。
我这里就介绍友盟的三方了吧,目前使用比较广泛,三方呢,这里只做qq,微信,微博等常见的。友盟呢有自己的demo和配置文档,不过那个demo是Eclipase的,很久了。废话不多说,开始吧。
一、友盟SDK
去友盟的官网下载一个友盟集成的SDK,在首页点击产品。选择U-Share,
之后会出现如下界面
点击SDK及文档,选择Android的小机器人,就会跳转到Android的介绍。
点击SDK下载,下载最新版本,我使用的是v5.1.1,然后让你选择所需要的分享的三方平台,我只用了qq,微信,微博(新手建议把API手册和文档工程实例下载下来)。
二、配置项目工程
在下载好的实例中,找到如下文件夹。里面有做需要的jar包和xml文件
创建项目工程就不仔细介绍了,将main和paltforms里面的jar包copy出来,总共有8个,导入项目。下面两个文件夹是eclipse的项目。
这里jar导入,只举一个例子,相信要做分享了,不可能什么都不懂。选择Project模式,将jar包导入libs中
导入之后,需要建立依赖。右键点击工程名。弹出对话框,选择OpenMoudelSettings,点击绿色+,选择添加File Dependencies.按如下操作即可,这里不需要导入V4包!!!!否则会报错!!
添加好依赖之后,那么就导入资源文件。在res文件下。
将这些文件导入工程,看清楚是在Android的形式下!
对于drawable中的图片,我有点偷懒,我直接把所有的图片都copy进去了,没进行细分,像人人或Face的图标都在。你们要是想做的精细点,可以去掉多余的图标。
接下来还需要导入微博的so文件。
导入项目工程,注意是Project的形式下。(jniLibs是自己手动创建的)
三、代码权限配置
这里需要各种appkey和secret。一步步来,离胜利快近了。首先去友盟官网注册一个账号。这里就不介绍了。注册之后,登录点击个人中心。
点击U-App,出现以下界面
点击立即使用
点击添加新应用。添加成功后。会有一个唯一appkey.需要在清单文件中添加。
四、部分代码
贴出清单文件的代码,
<meta-data android:name="UMENG_APPKEY" android:value="5763867767e58ec9c3002114" >
这里的key必须是自己创建的项目生成的key。其他可以直接复制。
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.abings.umengsharedemo" > <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_LOGS" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.GET_TASKS" /> <uses-permission android:name="android.permission.SET_DEBUG_APP" /> <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.USE_CREDENTIALS" /> <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:name=".MyApplication" android:supportsRtl="true" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.umeng.socialize.editorpage.ShareActivity" android:theme="@style/Theme.UMDefault" android:excludeFromRecents="true"/> <meta-data android:name="UMENG_APPKEY" android:value="5763867767e58ec9c3002114" > </meta-data> <activity android:name=".WXEntryActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:exported="true" android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent.NoTitleBar" /> <activity android:name=".WBShareActivity" android:configChanges="keyboardHidden|orientation" android:screenOrientation="portrait" > <intent-filter> <action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> <activity android:name="com.sina.weibo.sdk.component.WeiboSdkBrowser" android:configChanges="keyboardHidden|orientation" android:windowSoftInputMode="adjustResize" android:exported="false" > </activity> <service android:name="com.sina.weibo.sdk.net.DownloadService" android:exported="false"> </service> <activity android:name="com.tencent.tauth.AuthActivity" android:launchMode="singleTask" 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="tencent100424468" /> </intent-filter> </activity> <activity android:name="com.tencent.connect.common.AssistActivity" android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent.NoTitleBar" /> </application></manifest>
创建监听器,回调时使用。这些待会会给出代码的地址,都很简单的。
umShareListener = new UMShareListener() { @Override public void onResult(SHARE_MEDIA platform) { Toast.makeText(MainActivity.this, platform + " 分享成功啦", Toast.LENGTH_SHORT).show(); } @Override public void onError(SHARE_MEDIA platform, Throwable t) { Toast.makeText(MainActivity.this,platform + " 分享失败啦", Toast.LENGTH_SHORT).show(); } @Override public void onCancel(SHARE_MEDIA platform) { Toast.makeText(MainActivity.this,platform + " 分享取消了", Toast.LENGTH_SHORT).show(); } };
在Application类中进行初始化。
public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); PlatformConfig.setWeixin("wx967daebe835fbeac", "5bb696d9ccd75a38c8a0bfe0675559b3"); //微信 appid appsecret PlatformConfig.setSinaWeibo("3921700954","04b48b094faeb16683c32669824ebdad"); //新浪微博 appkey appsecret PlatformConfig.setQQZone("100424468", "c7394704798a158208a74ab60104f0ba"); }}
第一个参数是appkey,第二个是secret。这里我会一套流程全部给大家演示一遍。如何获取这些key和secret。
首先在腾讯开发者平台注册账号,需要什么手持身份证照片进行开发者认证,这些都很简单。登录之后,点击首页
点击应用管理
PlatformConfig.setQQZone("100424468", "c7394704798a158208a74ab60104f0ba");
第一个参数是appid,第二个参数是appkey。
微博创建开发者之后
如上图操作。创建应用填写信息。
包名大家都知道吧,清单文件中有。签名是用一个签名工具填入生成的。直接安装在手机上,当然要签名的软件也必须安装在手机上了,不然签名工具监测不到包所在地。在我的git里,会附上签名工具。这里的appkey是第一个参数,app secret是第二个参数。微博必须注意一点:shareAction的withText()方法不能为空!
微信相对麻烦一点。注册之后,点击管理中心,之后创建应用。
这里的签名和微博的签名、包名是一样的。之后要等几个小时,审核通过。信息真假无所谓,都会通过审核的。通过之后再点击应用就会有appkey和appsecret 了。
好了内容就这么多,抽空余时间整理的。有点乱。大家不要介意。按照这流程操作,分享和三方登录都是小事一桩。
最后附上git源码、
https://github.com/SingleShu/UmengShare