社会化三方分享集成详细介绍(友盟)

来源:互联网 发布:数据中心网络拓扑图 编辑:程序博客网 时间:2024/06/07 01:34

社会化三方分享集成详细介绍(友盟)

相信做开发的猿友们肯定会接触三方分享,那么三方分享怎么具体集成呢,当初我吃过苦头,现在想为新手们写一个详细的集成介绍。大神请自行走开。。。

我这里就介绍友盟的三方了吧,目前使用比较广泛,三方呢,这里只做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.需要在清单文件中添加。

四、部分代码

贴出清单文件的代码,

<span class="tag"><meta-data</span><span class="pln">            </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"UMENG_APPKEY"</span><span class="pln">            </span><span class="atn">android:value</span><span class="pun">=</span><span class="atv">"5763867767e58ec9c3002114"</span><span class="pln"> </span><span class="tag">></span>
<span class="pun">这里的</span><span class="pln">key</span><span class="pun">必须是自己创建的项目生成的</span><span class="pln">key</span><span class="pun">。其他可以直接复制。</span>
<span class="pun"><?</span><span class="pln">xml version</span><span class="pun">=</span><span class="str">"1.0"</span><span class="pln"> encoding</span><span class="pun">=</span><span class="str">"utf-8"</span><span class="pun">?></span><span class="pln"></span><span class="tag"><manifest</span><span class="pln"> </span><span class="atn">xmlns:android</span><span class="pun">=</span><span class="atv">"http://schemas.android.com/apk/res/android"</span><span class="pln">    </span><span class="atn">package</span><span class="pun">=</span><span class="atv">"com.abings.umengsharedemo"</span><span class="pln"> </span><span class="tag">></span><span class="pln">    </span><span class="tag"><uses-permission</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.permission.ACCESS_NETWORK_STATE"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">    </span><span class="tag"><uses-permission</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.permission.ACCESS_WIFI_STATE"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">    </span><span class="tag"><uses-permission</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.permission.READ_PHONE_STATE"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">    </span><span class="tag"><uses-permission</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.permission.WRITE_EXTERNAL_STORAGE"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">    </span><span class="tag"><uses-permission</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.permission.INTERNET"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">    </span><span class="tag"><uses-permission</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.permission.READ_LOGS"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">    </span><span class="tag"><uses-permission</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.permission.ACCESS_FINE_LOCATION"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">    </span><span class="tag"><uses-permission</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.permission.ACCESS_COARSE_LOCATION"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">    </span><span class="tag"><uses-permission</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.permission.GET_TASKS"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">    </span><span class="tag"><uses-permission</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.permission.SET_DEBUG_APP"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">    </span><span class="tag"><uses-permission</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.permission.SYSTEM_ALERT_WINDOW"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">    </span><span class="tag"><uses-permission</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.permission.GET_ACCOUNTS"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">    </span><span class="tag"><uses-permission</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.permission.USE_CREDENTIALS"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">    </span><span class="tag"><uses-permission</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.permission.MANAGE_ACCOUNTS"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">    </span><span class="tag"><application</span><span class="pln">        </span><span class="atn">android:allowBackup</span><span class="pun">=</span><span class="atv">"true"</span><span class="pln">        </span><span class="atn">android:icon</span><span class="pun">=</span><span class="atv">"@mipmap/ic_launcher"</span><span class="pln">        </span><span class="atn">android:label</span><span class="pun">=</span><span class="atv">"@string/app_name"</span><span class="pln">        </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">".MyApplication"</span><span class="pln">        </span><span class="atn">android:supportsRtl</span><span class="pun">=</span><span class="atv">"true"</span><span class="pln">        </span><span class="atn">android:theme</span><span class="pun">=</span><span class="atv">"@style/AppTheme"</span><span class="pln"> </span><span class="tag">></span><span class="pln">        </span><span class="tag"><activity</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">".MainActivity"</span><span class="pln"> </span><span class="tag">></span><span class="pln">            </span><span class="tag"><intent-filter></span><span class="pln">                </span><span class="tag"><action</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.intent.action.MAIN"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">                </span><span class="tag"><category</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.intent.category.LAUNCHER"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">            </span><span class="tag"></intent-filter></span><span class="pln">        </span><span class="tag"></activity></span><span class="pln">        </span><span class="tag"><activity</span><span class="pln">            </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"com.umeng.socialize.editorpage.ShareActivity"</span><span class="pln">            </span><span class="atn">android:theme</span><span class="pun">=</span><span class="atv">"@style/Theme.UMDefault"</span><span class="pln">            </span><span class="atn">android:excludeFromRecents</span><span class="pun">=</span><span class="atv">"true"</span><span class="tag">/></span><span class="pln">        </span><span class="tag"><meta-data</span><span class="pln">            </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"UMENG_APPKEY"</span><span class="pln">            </span><span class="atn">android:value</span><span class="pun">=</span><span class="atv">"5763867767e58ec9c3002114"</span><span class="pln"> </span><span class="tag">></span><span class="pln">        </span><span class="tag"></meta-data></span><span class="pln">        </span><span class="tag"><activity</span><span class="pln">            </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">".WXEntryActivity"</span><span class="pln">            </span><span class="atn">android:configChanges</span><span class="pun">=</span><span class="atv">"keyboardHidden|orientation|screenSize"</span><span class="pln">            </span><span class="atn">android:exported</span><span class="pun">=</span><span class="atv">"true"</span><span class="pln">            </span><span class="atn">android:screenOrientation</span><span class="pun">=</span><span class="atv">"portrait"</span><span class="pln">            </span><span class="atn">android:theme</span><span class="pun">=</span><span class="atv">"@android:style/Theme.Translucent.NoTitleBar"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">        </span><span class="tag"><activity</span><span class="pln">            </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">".WBShareActivity"</span><span class="pln">            </span><span class="atn">android:configChanges</span><span class="pun">=</span><span class="atv">"keyboardHidden|orientation"</span><span class="pln">            </span><span class="atn">android:screenOrientation</span><span class="pun">=</span><span class="atv">"portrait"</span><span class="pln"> </span><span class="tag">></span><span class="pln">            </span><span class="tag"><intent-filter></span><span class="pln">                </span><span class="tag"><action</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">                </span><span class="tag"><category</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.intent.category.DEFAULT"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">            </span><span class="tag"></intent-filter></span><span class="pln">        </span><span class="tag"></activity></span><span class="pln">        </span><span class="tag"><activity</span><span class="pln">            </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"com.sina.weibo.sdk.component.WeiboSdkBrowser"</span><span class="pln">            </span><span class="atn">android:configChanges</span><span class="pun">=</span><span class="atv">"keyboardHidden|orientation"</span><span class="pln">            </span><span class="atn">android:windowSoftInputMode</span><span class="pun">=</span><span class="atv">"adjustResize"</span><span class="pln">            </span><span class="atn">android:exported</span><span class="pun">=</span><span class="atv">"false"</span><span class="pln"> </span><span class="tag">></span><span class="pln">        </span><span class="tag"></activity></span><span class="pln">        </span><span class="tag"><service</span><span class="pln">            </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"com.sina.weibo.sdk.net.DownloadService"</span><span class="pln">            </span><span class="atn">android:exported</span><span class="pun">=</span><span class="atv">"false"</span><span class="tag">></span><span class="pln">        </span><span class="tag"></service></span><span class="pln">        </span><span class="tag"><activity</span><span class="pln">            </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"com.tencent.tauth.AuthActivity"</span><span class="pln">            </span><span class="atn">android:launchMode</span><span class="pun">=</span><span class="atv">"singleTask"</span><span class="pln">            </span><span class="atn">android:noHistory</span><span class="pun">=</span><span class="atv">"true"</span><span class="pln"> </span><span class="tag">></span><span class="pln">            </span><span class="tag"><intent-filter></span><span class="pln">                </span><span class="tag"><action</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.intent.action.VIEW"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">                </span><span class="tag"><category</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.intent.category.DEFAULT"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">                </span><span class="tag"><category</span><span class="pln"> </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"android.intent.category.BROWSABLE"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">                </span><span class="tag"><data</span><span class="pln"> </span><span class="atn">android:scheme</span><span class="pun">=</span><span class="atv">"tencent100424468"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">            </span><span class="tag"></intent-filter></span><span class="pln">        </span><span class="tag"></activity></span><span class="pln">        </span><span class="tag"><activity</span><span class="pln">            </span><span class="atn">android:name</span><span class="pun">=</span><span class="atv">"com.tencent.connect.common.AssistActivity"</span><span class="pln">            </span><span class="atn">android:screenOrientation</span><span class="pun">=</span><span class="atv">"portrait"</span><span class="pln">            </span><span class="atn">android:theme</span><span class="pun">=</span><span class="atv">"@android:style/Theme.Translucent.NoTitleBar"</span><span class="pln"> </span><span class="tag">/></span><span class="pln">    </span><span class="tag"></application></span><span class="pln"></span><span class="tag"></manifest></span>
创建监听器,回调时使用。这些待会会给出代码的地址,都很简单的。
<span class="pln">umShareListener </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">UMShareListener</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">            </span><span class="lit">@Override</span><span class="pln">            </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onResult</span><span class="pun">(</span><span class="pln">SHARE_MEDIA platform</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">                </span><span class="typ">Toast</span><span class="pun">.</span><span class="pln">makeText</span><span class="pun">(</span><span class="typ">MainActivity</span><span class="pun">.</span><span class="kwd">this</span><span class="pun">,</span><span class="pln"> platform </span><span class="pun">+</span><span class="pln"> </span><span class="str">" 分享成功啦"</span><span class="pun">,</span><span class="pln"> </span><span class="typ">Toast</span><span class="pun">.</span><span class="pln">LENGTH_SHORT</span><span class="pun">).</span><span class="pln">show</span><span class="pun">();</span><span class="pln">            </span><span class="pun">}</span><span class="pln">            </span><span class="lit">@Override</span><span class="pln">            </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onError</span><span class="pun">(</span><span class="pln">SHARE_MEDIA platform</span><span class="pun">,</span><span class="pln"> </span><span class="typ">Throwable</span><span class="pln"> t</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">                </span><span class="typ">Toast</span><span class="pun">.</span><span class="pln">makeText</span><span class="pun">(</span><span class="typ">MainActivity</span><span class="pun">.</span><span class="kwd">this</span><span class="pun">,</span><span class="pln">platform </span><span class="pun">+</span><span class="pln"> </span><span class="str">" 分享失败啦"</span><span class="pun">,</span><span class="pln"> </span><span class="typ">Toast</span><span class="pun">.</span><span class="pln">LENGTH_SHORT</span><span class="pun">).</span><span class="pln">show</span><span class="pun">();</span><span class="pln">            </span><span class="pun">}</span><span class="pln">            </span><span class="lit">@Override</span><span class="pln">            </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onCancel</span><span class="pun">(</span><span class="pln">SHARE_MEDIA platform</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">                </span><span class="typ">Toast</span><span class="pun">.</span><span class="pln">makeText</span><span class="pun">(</span><span class="typ">MainActivity</span><span class="pun">.</span><span class="kwd">this</span><span class="pun">,</span><span class="pln">platform </span><span class="pun">+</span><span class="pln"> </span><span class="str">" 分享取消了"</span><span class="pun">,</span><span class="pln"> </span><span class="typ">Toast</span><span class="pun">.</span><span class="pln">LENGTH_SHORT</span><span class="pun">).</span><span class="pln">show</span><span class="pun">();</span><span class="pln">            </span><span class="pun">}</span><span class="pln">        </span><span class="pun">};</span>
在Application类中进行初始化。
<span class="kwd">public</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> </span><span class="typ">MyApplication</span><span class="pln"> </span><span class="kwd">extends</span><span class="pln"> </span><span class="typ">Application</span><span class="pln"> </span><span class="pun">{</span><span class="pln">    </span><span class="lit">@Override</span><span class="pln">    </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onCreate</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">        </span><span class="kwd">super</span><span class="pun">.</span><span class="pln">onCreate</span><span class="pun">();</span><span class="pln">        </span><span class="typ">PlatformConfig</span><span class="pun">.</span><span class="pln">setWeixin</span><span class="pun">(</span><span class="str">"wx967daebe835fbeac"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"5bb696d9ccd75a38c8a0bfe0675559b3"</span><span class="pun">);</span><span class="pln">        </span><span class="com">//微信 appid appsecret</span><span class="pln">        </span><span class="typ">PlatformConfig</span><span class="pun">.</span><span class="pln">setSinaWeibo</span><span class="pun">(</span><span class="str">"3921700954"</span><span class="pun">,</span><span class="str">"04b48b094faeb16683c32669824ebdad"</span><span class="pun">);</span><span class="pln">        </span><span class="com">//新浪微博 appkey appsecret</span><span class="pln">        </span><span class="typ">PlatformConfig</span><span class="pun">.</span><span class="pln">setQQZone</span><span class="pun">(</span><span class="str">"100424468"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"c7394704798a158208a74ab60104f0ba"</span><span class="pun">);</span><span class="pln">    </span><span class="pun">}</span><span class="pln"></span><span class="pun">}</span>
第一个参数是appkey,第二个是secret。这里我会一套流程全部给大家演示一遍。如何获取这些key和secret。

首先在腾讯开发者平台注册账号,需要什么手持身份证照片进行开发者认证,这些都很简单。
登录之后,点击首页

点击应用管理



点击创建应用。需要上传16*16和512*512的截图,apk等信息。填写完毕之后,会获得appId和appkey。


<span class="typ">PlatformConfig</span><span class="pun">.</span><span class="pln">setQQZone</span><span class="pun">(</span><span class="str">"100424468"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"c7394704798a158208a74ab60104f0ba"</span><span class="pun">);</span>
第一个参数是appid,第二个参数是appkey。

微博创建开发者之后


如上图操作。创建应用填写信息。


包名大家都知道吧,清单文件中有。签名是用一个签名工具填入生成的。直接安装在手机上,当然要签名的软件也必须安装在手机上了,不然签名工具监测不到包所在地。在我的git里,会附上签名工具。这里的appkey是第一个参数,app secret是第二个参数。微博必须注意一点:shareAction的withText()方法不能为空!

微信相对麻烦一点。注册之后,点击管理中心,之后创建应用。


这里的签名和微博的签名、包名是一样的。之后要等几个小时,审核通过。信息真假无所谓,都会通过审核的。通过之后再点击应用就会有appkey和appsecret 了。


好了内容就这么多,抽空余时间整理的。有点乱。大家不要介意。按照这流程操作,分享和三方登录都是小事一桩。

最后附上git源码、

https://github.com/SingleShu/UmengShare
0 0
原创粉丝点击