最近在开发一个社交平台的app需要用到分享功能,本来想自己开发的,在网上花了很长时间查了很多教程结果却不尽人意,无意中看到还有类似的开源组件友推,结合自己的开发经验,把一些集成步骤和问题整理成文档奉献给大家,希望能帮助各位开发者提高开发效率。

集成步骤:

第一步:

进入友推官网申请appkey  http://youtui.mobi/user/reg

第二步:

下载最新版的友推sdk包,包里提供了集成demo。

第三步:

集成前您需要为您的应用在需要集成的社交网站开放平台申请账号(一般一个工作日可完成审核),否则只能调用系统的分享菜单,无法跟踪分享的回调事件及统计。

QQ、QQ空间的可以使用友推提供的appkey,新浪微博、腾讯微博的也可以使用友推提供的appkey(但无法使用SSO免登,消息来源显示友推),微信、人人网的须要自己应用申请。

第四步:

1.引用友推库项目-> 2.注册需要分享的平台 -> 3.AndroidManifest.xml注册权限、activity ->4.初始化友推并调用

4.1 引用友推库项目

将youtui-lib项目库和应用工程放在同一个目录下,在 Package Explorer 中右键点击工程的根目录,选择 Properties(属性),然后点击,在Android选项点击Add添加youtui-lib。

4.2注册需要分享的平台

1.配置各分享平台key,该配置文件为youtui_sdk.xml,配置完放入工程的assets文件夹。

2.如果需要分享到哪个平台就将该平台的Enable属性设置为true.

3.如果需要将某个平台排列到前面,只需要改变它在youtui_sdk.xml文件中的位置即可。

4.QQ、QQ空间的可以使用友推提供的appkey,新浪微博、腾讯微博的也可以使用友推提供的appkey(但无法使用SSO免登,消息来源显示友推),微信、人人网的须要自己应用申请。

各平台需要注意的事项:

新浪微博:

SSO免登,新浪微博需要验证应用签名,请一定要在新浪开放平台管理中心应用信息 -> 基本信息 -> Android签名包名信息 配置该信息

每次包名变化或者使用的.keystore变化都会导致应用签名变化,请重新到新浪微博开放平台设置。

运行Demo时如果重新编译,因为使用的.keystore文件变化也会导致应用签名变化,导致Demo新浪微博分享无法正常工作,请运行Demo时使用Demo工程包中提供的debug.keystore替换C:\Users\Administrator\.android中的debug.keystore文件

微信和朋友圈:

微信和朋友圈也需要验证应用签名,请在微信开放平台管理中心修改应用 -> 开发信息配置。

QQ和QQ空间:

QQ和QQ空间使用的是腾讯开放平台api,请在腾讯开放平台申请账号和注册应用,请不要使用QQ互联(用于网站账号登录)的配置,虽然都是腾讯的,但是两个平台并不通用,除了需要在youtui_sdk.xml配置信息,还需要在manifest文件中的android:scheme中的tencent后的一串数字换成自己应用的appid。

4.3 在AndroidManifest.xml 注册权限

4.4在 AndroidManifest.xml 注册需要的Activity

4.5微信和朋友圈回调设置

4.6初始化友推

4.7创建 ShareData 实例,调用该实例的set方法设置需要分享的数据

4.8调用友推分享推荐组件

这样就成功集成了友推的分享推荐功能了,用户点击推荐分享按钮后,界面如下:demo下载 (android)

一些要注意到的地方:

1) v4包版本冲突,解决方法在lib工程和应用工程使用同一个版本的v4包

2) 社交平台jar包冲突,如果开发者前面引入过分享平台的开发包,并且和友推sdk使用的开发包冲突,请删除原先导入的包

3) youtui_sdk.xml填写错误,导致解析异常,无法读取开发者注册信息,请务必正确填写

4) 新浪微博分享时显示出错了或sso package or sign error,请检查在新浪申请的应用Android签名设置是否正确,当使用的keystore变化时,注意到新浪开发平台修改应用签名

5)我应用的注册用户 分享之后 得到的积分 可以增加到 我的应用的用户积分系统里吗

答:应用在友推后台创建了分享送积分的活动,应用用户分享后获得的积分默认是只增加到活动的积分里面的。如果需要增加到应用的积分系统里,需要在集成的时装在应用分享成功的事件中加方法来处理。应用用户分享获得积分的过程中并不用额外注册,是记录到用户的卡号、设备号里的。

6)qq和qq空间分享完返回时有问题?

答:qq和qq空间分享完返回时需要使用一个参数appid(在腾讯开放平台申请)

该参数定义在manifest.xml文件的

<!-- qq授权需要注册该activity --><activityandroid: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="tencent你的appid" />

</intent-filter>

</activity>

如果该处不设置,qq和qq空间的回调会无效,如果有几个应用把该处设置为同样的id会导致分享完从qq返回时并不是直接回到应用,而是要出现一个选择框从这几个应用中选择

7)出现“NullPoint YouTuiAcceptor.getFileName”

答:出现该问题是因为渠道号未配置 ,在manifest.xml 配置<!-- 友推渠道号,应用名(英文或拼音)+"_yt",如:“jd_yt”,用于识别通过友推活动下载的应用,请正确填写,否则无法正确统计 --><meta-dataandroid:name="YOUTUI_CHANNEL"android:value="你的apk名字_yt" ></meta-data>

8)为什么demo中微信和新浪微博无法分享,微信甚至不能调出微信界面?

答:微信和新浪微博需要验证应用签名,demo在重新编译后应用签名变化导致微信和新浪微博分享无法正常工作,解决方法为打开eclipse的preferences-build找到default debug keystore路径,然后用demo工程中的debug.keystore文件替换默认的debug keystore,然后再进行编译,这样生成的demo应该就可以进行微信和新浪微博的分享了

9)微信分享配置好key和分享信息后点了还是没反应

微信需要验证应用签名,所以要使用分享的话需要先在微信开发者平台配置应用签名.如果不知道自己应用签名是多少,可以在微信开发者平台的资源中心-资源下载-Android资源下载里面下载签名生成工具,然后使用该工具查看自己的应用签名,然后在管理中心-修改应用中设置应用的签名。

app分享功能开发的更多相关文章

  1. 06 app分享功能

    通过某一个点击事件触发confirm弹窗 确定后正式进行分享功能处理 这是一个封装好的分享功能插件 https://ext.dcloud.net.cn/plugin?id=4860 如果自己写的话会很 ...

  2. 微信jssdk分享功能开发

    先理解下分享: 在app端 ,经常能看见 分享按钮的功能,(分享给朋友,分享到朋友圈,分享到QQ空间等等): https://open.weixin.qq.com/(微信开发平台),这需要到开放平台注 ...

  3. Android APP分享功能实现

    [Android应用开发详解]第01期:第三方授权认证(一)实现第三方授权登录.分享以及获取用户资料   由于公司项目的需要,要实现在项目中使用第三方授权登录以及分享文字和图片等这样的效果,几经波折, ...

  4. iOS 分享功能开发

    iOS 开发过程中可能会遇到需要进行第三方分享的需求,比如向QQ,微信,微博等分享 如下图 我们今天要讲到的方式是使用了一个第三方工具: http://www.sharesdk.cn 一,注册账号 去 ...

  5. 关于微信分享功能开发的一些bug

    wx.onMenuShareTimeline({//onMenuShareTimeline title: (h('#mainForm').children('.content').inf('value ...

  6. Android中使用ShareSDK集成分享功能

    引言      现在APP开发集成分享功能已经是非常普遍的需求了.其他集成分享技术我没有使用过,今天我就来介绍下使用ShareSDK来进行分享功能开发的一些基本步骤和注意点,帮助朋友们避免一些坑.好了 ...

  7. AndroidStudio用微信官方方法接入微信分享功能

    转载请注明出处:http://www.cnblogs.com/wangoublog/p/5367950.html 现在微信的功能众所周知,用户量.影响力也是惊人,很多应用接入微信的功能已成为一种不可缺 ...

  8. H5 + 开发App(分享功能)

    我们开发App有一个不可少的功能,就是分享功能.让用户将app分享到他的社交圈.比如微信 QQ 微博等等. 准备工作:我们要先去申请相关的权限, 这是传送门http://ask.dcloud.net. ...

  9. 微信app的分享功能

    最近在做微信app,需要用到分享功能,横观文档,压根没有提过分享功能自定义的事情……后来在搜索中找到一些前辈的文章,使用WeixinJSBridge这个接口实现,但是,我非常非常好奇,这是什么渠道透露 ...

随机推荐

  1. python数组列表、字典、拷贝、字符串

    python中字符串方法 name = "I teased at life as if it were a foolish game" print(name.capitalize( ...

  2. react+webpack 引入字体图标

    在使用react+webpack 构建项目过程中免不了要用到字体图标,在引入过程中报错,不能识别字体图标文件中的@符,报错 Uncaught Error: Module parse failed: U ...

  3. 腾讯云“动态加速”与“CDN”的区别——浅谈对“动态加速”的理解(可能有误)

    CDN的劣势及“动态加速”产生背景 通常CDN对静态内容支持较好,若使用其加速动态内容,可能会导致异常(如导致无法登录).当然,可以将动态内容的在CDN节点上的缓存时间设置为0秒来解决.但这毕竟是用户 ...

  4. SQL-有关数据库的提问

    各位大侠,小弟初来乍到,对sql , pl/sql ,t/sql概念比较模糊,有以下几个问题希望能帮我解答: 1:plsql到底是语言还是工具?我看到有人说oracle的存储过程是拿plsql写的,那 ...

  5. Google Java编程风格指南(转)

    目录 前言 源文件基础 源文件结构 格式 命名约定 编程实践 Javadoc 后记 前言 这份文档是Google Java编程风格规范的完整定义.当且仅当一个Java源文件符合此文档中的规则, 我们才 ...

  6. POJ - 3109 Inner Vertices

    不存在-1的情况,而且最多一轮就结束了.如果新增加的黑点v0会产生新的黑点v1,那么v0和v1肯定是在一条轴上的,而原来这条轴上已经有黑点了. 离散以后扫描线统计,往线段上插点,然后查询区间上点数. ...

  7. java注解总结-关联信息-关联结构

    java的注解是一种可配置信息: 这些信息直接依附在功能代码之上: * 元注解@Target,@Retention,@Documented,@Inherited * * @Target 表示该注解用于 ...

  8. 【CF660E】Different Subsets For All Tuples(组合数学)

    点此看题面 大致题意: 有一个长度为\(n\)的数列,每个位置上数字的值在\([1,m]\)范围内,则共有\(m^n\)种可能的数列.分别求出每个数列中本质不同的子序列个数,然后求和. 一些分析 首先 ...

  9. 谷歌浏览器兼容IE插件

    谷歌浏览器兼容IE插件 http://pan.baidu.com/s/1i31hspf

  10. centos安装django

    1.如果默认安装的是python2.6,先升级至python2.7 参考:http://www.cnblogs.com/tiger2soft/p/5677843.html 2.安装pip 先下载get ...