Android分享到微信等社交平台教程

在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);

时间: 2024-08-07 21:18:57

Android分享到微信等社交平台教程的相关文章

在Android中使App高速、简单地支持新浪微博、微信、QQ、facebook等十几个主流社交平台的分享功能

前言 在如今的APP或者游戏中,分享功能差点儿已经成为标配.分享功能不但能够满足用户的需求.也能够为产品带来很多其它的用户,甚至能够对用户的行为.活跃度.年龄段等情况进行数据统计,使得软件公司能够对产品进行更精准的定位.今天我们就来简单剖析市场上一款优秀的分享SDK以及其集成过程.这款分享SDK就是友盟的社会化分享组件. 友盟社会化分享,帮助移动应用高速具备分享.登录.评论.喜欢等社交功能,提升用户粘度.助力产品推广,并提供实时.全面的社会化数据统计分析服务. 很多其它请訪问友盟社会化组件官网.

在Android中使App快速、简单地支持新浪微博、微信、QQ、facebook等十几个主流社交平台的分享功能

前言 在现在的APP或者游戏中,分享功能几乎已经成为标配.分享功能不但能够满足用户的需求,也能够为产品带来更多的用户,甚至可以对用户的行为.活跃度.年龄段等情况进行数据统计,使得软件公司可以对产品进行更精准的定位.今天我们就来简单剖析市场上一款优秀的分享SDK以及其集成过程,这款分享SDK就是友盟的社会化分享组件. 友盟社会化分享,帮助移动应用快速具备分享.登录.评论.喜欢等社交功能,提升用户粘度.助力产品推广,并提供实时.全面的社会化数据统计分析服务. 基本概念 根据友盟的集成文档,我们对于友

友盟发布第一期国内主要社交平台活跃度数据,微信超越QQ领跑社交平台

“Be Social”已成为移动应用设计和运营的重中之重,社交平台的选择更是应用开发过程中的重要一环.友盟通过“社会化组件”产品服务开发者,同时长期观察和研究App的社会化行为和市场趋势.2014年第一季度,通过友盟在全国覆盖的7.8亿活跃的移动设备,我们发现,在国内开发者认知中,包括新浪微博.QQ空间在内的“老牌”社交平台仍有一定优势,但微信作为社交平台,其数据表现及重要性已整体超越QQ. 国内主要社交平台均有增长,微信整体超越QQ 根据友盟数据,自2014年1月中旬起,微信的整体用户(包括微

从Facebook躺枪,看社交平台和媒体平台交集的禁区

近日,Facebook又"躺枪"了.德国司法部长赫科·玛斯表示,他认为Facebook应当被视为一家媒体公司,而非技术平台.但扎克伯格早在8月份虽然承认Facebook通过用户之间的关系向其提供新闻,并强调通过不同地方获取信息的优势,但他表示,"Facebook是一家科技公司,我们的任务是开发工具,而不是制作任何内容". 换句话说,扎克伯克不会让Facebook成为一家媒体公司,而是继续充当科技平台.与Facebook类似的是,微信这一社交平台也明确表示不会成为媒体

Android平台第三方应用分享到微信开发

[转载]Android平台第三方应用分享到微信开发 一.申请APPID 微信公共平台和微博分享一样,也需要申请一个ID,来作为调起微信.分享到微信的唯一标识. 申请微信APPID可以到微信平台http://open.weixin.qq.com/app/list/?lang=zh_CN上申请.具体的申请流程网站上有很详细的介绍,我这里就仅列出一些注意事项: (1)申请APPID时的应用名字审核通过之后将不允许更改,所以申请时的应用名字一定要提前确定好.微信官方也有详细说明,如下图: (2)应用签名

Android利用微信SDK分享到微信教程,回调分享结果错误解决和注意点

在正式开始之前这里要着啰嗦一下,进来的同学一定要看,在申请应用的时候要填一个签名,这个签名是由应用的签名文件keystore决定的,那么你在填这个签名的时候,一定要把你的应用用正式的keyStore生成apk,安装到手机,然后用微信提供的获取应用签名的apk工具获取你应用的签名,然后这会生成的这个签名才是正确的,千万记得,不要使用dubug的ketStore测试,不然后面虽然可以修改,修改了后要审核,但是审核也是需要时间的,会很麻烦. 还有一点,你在测试微信分享的时候可能会直接在Eclipse好

App分享之微信微博等各个社交平台的分享授权规则和常见问题

一.新浪微博分享规则 新浪微博支持分享类型: 应用内分享也就是网页分享支持: 文字,文字+图片,要分享链接需要链接添加在text里分享 客户端分享支持:文字,图片,文字+图片,图片+文字+链接 参数说明:text:不能超过140个汉字image:图片最大不超过5M,仅支持JPEG.GIF.PNG格式latitude:有效范围:-90.0到+90.0,+表示北纬longitude:有效范围:-180.0到+180.0,+表示东经 二.QQ好友分享规则 QQ好友分享支持:文字,图片,文字+图片+链接

h5微信群牛牛平台如何搭建 教程分享

HTML5plus Runtime,简称5+ Runtime,是运行于手机端的强化web引擎,除了支持标准HTML5外,还支持更多扩展的js api,使得js的能力不输于原生.5+ Runtime内置于HBuilder,在真机运行.打包时自动挂载. 业内之前有phonegap/Cordova方案,但是他们自带js api太少了,扩展api需要用原生语言开发,更致命的是这类方案的性能不足. h5微信群牛牛平台如何搭建(q-2152876294)各类大厅搭建材料(http://diguaym.com

android使用友盟实现第三方登录、分享以及微信回调无反应问题解决办法

        Leaning_wk每一次的进步都会拉近与成功的距离! 帐号设置退出   关闭 qq_15855289的博客 目录视图 摘要视图 订阅 异步赠书:Kotlin领衔10本好书      免费直播:AI时代,机器学习如何入门?      程序员8月书讯      每周荐书:Java Web.Python极客编程(评论送书) android使用友盟实现第三方登录.分享以及微信回调无反应问题解决办法 标签: android友盟第三方登录分享微信登录回调问题 2017-02-10 16:2