在Android手机app上加入分享到微信等平台的功能,使用的是第三方的开源组件,友推SDK。
集成分为以下几个步骤:
1. 在友推官网注册,添加要集成友推sdk的 app信息,并获取appkey。
2.下载最新版的友推sdk包,包里提供了集成demo。
3.申请社交平台appkey
包括的社交平台有:微信、新浪微博、腾讯微博、QQ空间、QQ、微信好友、人人等。
4.引用友推库项目
将youtui-lib项目库和应用工程放在同一个目录下
5.把sdk中的youtui-share-demo工程里的assets下的youtui_sdk.xml拷贝到你的应用里的assets下。
6.修改youtui_sdk.xml
其中微信和朋友圈,需要到微信开发平台提交你的应用,申请得到key。其中一个比较重要的地方,即应用签名。用微信提供的Gen_Signature_Android.apk。输入你的包名。就可以得到你的应用签名了。详细代码看下面
<?xml version="1.0" encoding="utf-8"?> <KeyInfo> <!-- 分享平台的注册信息,一定要填入在相应平台注册的正确信息,不然应用无法完成授权, 也无法进行分享,enable属性决定是否分享该平台 --> <!-- 友推sdk注册地址 : http://youtui.mobi/ --> <YouTui AppKey="669757" /> <!-- 微信和朋友圈注册:https://open.weixin.qq.com/ --> <Wechat AppId="wx36de4ec7c07c3589" Enable="true" /> <WechatMoments AppId="wx36de4ec7c07c3589" Enable="true" /> <!-- 新浪微博注册地址:http://open.weibo.com/ --> <SinaWeibo IsNoKeyShare="true" AppKey="2502314449" AppSecret="df10502d7b422937adea431cd985904a" Enable="true" RedirectUrl="http://youtui.mobi/weiboResponse" /> <!-- QQ,QQ空间注册地址:http://open.qq.com/ --> <QQ AppId="1101255276" AppKey="h4sOXgtTtsqRjoOq" Enable="true" /> <QZone AppId="1101255276" AppKey="h4sOXgtTtsqRjoOq" Enable="true" /> <!--腾讯微博注册地址:http://dev.t.qq.com/ --> <TencentWeibo IsNoKeyShare="true" AppKey="801443192" AppSecret="45d65f2d2650637c96ece74f4a67b686" Enable="true" RedirectUrl="http://yt.bidaround.cn/" /> <!-- 人人注册地址: http://dev.renren.com/ --> <Renren AppId="244110" AppKey="b1a80ac1aa694090bfb9aa3a590f2161" Enable="true" SecretKey="506ccdbda36046d197801e79c4ebba23" /> <ShortMessage Enable="true" /> <Email Enable="true" /> <!-- 复制链接 --> <CopyLink Enable="true" /> <More Enable="true"/> </KeyInfo>
7.修改AndroidManifest.xml,添加权限和注册activity等信息。详细代码看下面
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.GET_TASKS" /> <!-- 缓存资源优先存入SDcard --> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <!-- 用于加载图片 --> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <!-- 用于人人SSO登陆 --> <uses-permission android:name="android.permission.USE_CREDENTIALS" /> <!-- 用于人人SSO登陆 --> <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" /> <!-- 用于人人SSO登陆 --> <!-- youtui --> <!-- 微信分享需要注册该activity --> <activity android:name=".wxapi.WXEntryActivity" android:exported="true" android:launchMode="singleTask" android:theme="@android:style/Theme.Translucent" > </activity> <!-- qq回调需要注册该activity --> <activity android:name="com.tencent.connect.common.AssistActivity" android:configChanges="orientation|keyboardHidden" android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent.NoTitleBar" /> <!-- qq授权需要注册该activity --> <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="tencent1101255276" /> </intent-filter> </activity> <!-- 人人授权需要注册的activity --> <activity android:name="com.renn.rennsdk.oauth.OAuthActivity" android:configChanges="orientation|navigation|keyboardHidden" /> <!-- 分享界面 --> <activity android:name="cn.bidaround.ytcore.activity.ShareActivity" android:exported="true" android:launchMode="singleTop" android:theme="@android:style/Theme.Translucent.NoTitleBar" > <!-- 新浪微博分享回调需要设置 --> <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--> <activity android:name="cn.bidaround.ytcore.login.AuthActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar" /> <!-- 友推积分activity --> <activity android:name="cn.bidaround.point.PointActivity" /> <meta-data android:name="YOUTUI_CHANNEL" android:value="HIAPK_yt" > </meta-data> <!-- youtui -->
8.修改你的应用程序。在你需要添加分享的地方。增加一下代码即可分享。详细代码看下面
try { // ShareData使用内容分享类型分享类型 ShareData whiteViewShareData = new ShareData(); whiteViewShareData.isAppShare = false; whiteViewShareData.setDescription("分享猜车标"); whiteViewShareData.setTitle("分享猜车标"); whiteViewShareData.setText("我玩了猜车标,非常好玩,你也来玩吧^_^"); whiteViewShareData.setTarget_url("http://apk.hiapk.com/html/2014/06/2770934.html?module=256&info=HHNmjwdo"); whiteViewShareData.setImageUrl("http://youtui.oss-cn-hangzhou.aliyuncs.com/AppLogo/ic_launcher.png"); YtTemplate whiteGridTemplate = new YtTemplate(StartActivity.this, YouTuiViewType.WHITE_GRID, true); whiteGridTemplate.setShareData(whiteViewShareData); YtShareListener whiteViewListener = new YtShareListener() { @Override public void onSuccess(ErrorInfo error) { YtLog.e("----", error.getErrorMessage()); } @Override public void onPreShare() { } @Override public void onError(ErrorInfo error) { YtLog.e("----", error.getErrorMessage()); } @Override public void onCancel() { } }; /** 添加分享结果监听,如果开发者不需要处理回调事件则不必设置 */ whiteGridTemplate.addListener(YtPlatform.PLATFORM_QQ, whiteViewListener); whiteGridTemplate.addListener(YtPlatform.PLATFORM_QZONE, whiteViewListener); whiteGridTemplate.addListener(YtPlatform.PLATFORM_RENN, whiteViewListener); whiteGridTemplate.addListener(YtPlatform.PLATFORM_SINAWEIBO, whiteViewListener); whiteGridTemplate.addListener(YtPlatform.PLATFORM_TENCENTWEIBO, whiteViewListener); whiteGridTemplate.addListener(YtPlatform.PLATFORM_WECHAT, whiteViewListener); whiteGridTemplate.addListener(YtPlatform.PLATFORM_WECHATMOMENTS, whiteViewListener); /** * 为每个平台添加分享数据,如果不单独添加,分享的为whiteViewTemplate.setShareData( * whiteViewShareData)设置的分享数据 */ whiteGridTemplate.addData(YtPlatform.PLATFORM_QQ, whiteViewShareData); whiteGridTemplate.addData(YtPlatform.PLATFORM_QZONE, whiteViewShareData); whiteGridTemplate.addData(YtPlatform.PLATFORM_RENN, whiteViewShareData); whiteGridTemplate.addData(YtPlatform.PLATFORM_SINAWEIBO, whiteViewShareData); whiteGridTemplate.addData(YtPlatform.PLATFORM_TENCENTWEIBO, whiteViewShareData); whiteGridTemplate.addData(YtPlatform.PLATFORM_WECHAT, whiteViewShareData); whiteGridTemplate.addData(YtPlatform.PLATFORM_WECHATMOMENTS, whiteViewShareData); whiteGridTemplate.addData(YtPlatform.PLATFORM_MESSAGE, whiteViewShareData); whiteGridTemplate.addData(YtPlatform.PLATFORM_EMAIL, whiteViewShareData); whiteGridTemplate.addData(YtPlatform.PLATFORM_MORE_SHARE, whiteViewShareData); whiteGridTemplate.show(); } catch (Exception e) { e.printStackTrace(); }
9.当然不要忘记了在你的第一个Activity的onCreate方法里加入:
YtTemplate.init(this);
10.应用退出时:
YtTemplate.release(this);