微信第三方分享
前言如今的app当中,几乎都包含了社会化分享的功能,来两张图look下
<ignore_js_op>
<ignore_js_op>
<ignore_js_op>
现在我们mob平台提供了40多种分享,界面可以完全自定义,来帮助开发者快速完成社会化分享,下面我们来介绍下ShareSDK的下载及快速集成步骤
第一步:注册ShareSDK应用获取ShareSDK的appkey
首先进入mob的官网:http://mob.com; 如下图所示有注册和登录,首先我们需要注册一个账户,才可以申请应用得到appkey来使用ShareSDK
<ignore_js_op>
创建完之后可以在这里看到appkey,
<ignore_js_op>
具体的注册和申请应用的步骤请参考帖子《如何在mob上创建应用》
第二步:下载ShareSDK
好的,创建完之后我们现在开始下载ShareSDK,进入下载页面
<ignore_js_op>
选择android后进入如下界面
<ignore_js_op>
点击SDK下载可以进入到选择界面,选择自己需要的平台;注意这里还提供了Demo,可以下载下来测试;
(Demo中的微信分享必须要打包签名后测试,打包的签名文件demo中已经提供,密码是123456)
<ignore_js_op>
下载完了之后,解压,就是下面这个样子:
<ignore_js_op>
第三步:利用快速集成工具生成所需要的集成文件
我们进入ShareSDK for Android 目录下,如下图所示:
箭头指向的是一个快速集成工具;
<ignore_js_op>
双击快速集成工具可以打开如下所示的界面
(注意如果双击的打不开可以下载此工具双击修复下 <ignore_js_op>
jarfix.exe )
<ignore_js_op>
这个界面我们可以看到输入项目名称和包名即可,注意如果是做第三方登录呢可以不选择“集成快速分享”
点击确定之后会看到原来的文件夹里会生成一个以项目名称的文件夹
<ignore_js_op>
打开之后如下图所示:
<ignore_js_op>
libs是jar包列表,res是资源文件,src是onekeyshare界面代码,assets是配置初始化第三方那个key的文件
第四步:将生成的文件集成到自己的项目
下面我们以新建的项目为例:
<ignore_js_op>
首先我们先将sample下的libs下的jar包全选复制到新建的项目app的libs下
<ignore_js_op>
如上图所示jar包虽然复制进来但是还没build进入工程
注意:选择jar包然后右键选择 add as library
<ignore_js_op>
添加完之后如下图所示:
<ignore_js_op>
其次,将项目名称sample下的assets复制到src->main下
<ignore_js_op>
再有就是sample下的资源res文件夹了,这里有必要说明下直接将res下的所有资源文件夹全选复制到自己项目的src->main->res下,不需要修改文件夹的名称
复制完之后如下图所示:资源文件夹的名称不要修改,直接复制进来就好
<ignore_js_op>
最后将sample下生成的src下的cn的快速集成的代码包复制进来,注意下图的目录
<ignore_js_op>
第五步:配置清单文件
到此为止ShareSDK的集成就完成了,下面还需要配置下Manifest文件;
首先是添加权限:
- <uses-permission android:name="android.permission.GET_TASKS" />
- <uses-permission android:name="android.permission.INTERNET" />
- <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
- <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
- <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
- <uses-permission android:name="android.permission.READ_PHONE_STATE" />
- <uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>
- <uses-permission android:name="android.permission.GET_ACCOUNTS"/>
- <!-- 蓝牙分享所需的权限 -->
- <uses-permission android:name="android.permission.BLUETOOTH" />
- <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
添加ShareSDK必要的activity
- <activity
- android:name="com.mob.tools.MobUIShell"
- android:theme="@android:style/Theme.Translucent.NoTitleBar"
- android:configChanges="keyboardHidden|orientation|screenSize"
- android:screenOrientation="portrait"
- android:windowSoftInputMode="stateHidden|adjustResize" >
- <!-- QQ和QQ空间分享 QQ登录的回调必须要配置的 -->
- <intent-filter>
- <data android:scheme="tencent100371282" />
- <action android:name="android.intent.action.VIEW" />
- <category android:name="android.intent.category.BROWSABLE" />
- <category android:name="android.intent.category.DEFAULT" />
- </intent-filter>
- <!-- 新浪微博客户端分享回调必须配置 -->
- <intent-filter>
- <action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" />
- <category android:name="android.intent.category.DEFAULT" />
- </intent-filter>
- </activity>
有必要对上面的intent说明下,QQ的回调intent,实现QQ的分享必须要添加,并且保证您assets下的sharesdk.xml里配置的QQ的appid与这里的tencent后面的appid保持一致,否则QQ分享是没有回调的,注意替换的时候tencent保留,只替换后面的appid (不需要QQ或者微博可以不配置intent过滤,但是mobuishell这个activity必须要有)
接下来配置的是微信、易信、支付宝的回调activity的配置(如果不需要的平台可以不配置的)
- <!--微信分享回调 -->
- <activity
- android:name=".wxapi.WXEntryActivity"
- android:theme="@android:style/Theme.Translucent.NoTitleBar"
- android:configChanges="keyboardHidden|orientation|screenSize"
- android:exported="true"
- android:screenOrientation="portrait" />
- <!--易信分享回调 -->
- <activity
- android:name=".yxapi.YXEntryActivity"
- android:theme="@android:style/Theme.Translucent.NoTitleBar"
- android:configChanges="keyboardHidden|orientation|screenSize"
- android:exported="true"
- android:screenOrientation="portrait" />
- <!-- 支付宝分享回调 -->
- <activity
- android:name=".apshare.ShareEntryActivity"
- android:theme="@android:style/Theme.Translucent.NoTitleBar"
- android:configChanges="keyboardHidden|orientation|screenSize"
- android:exported="true"/>
第六步:申请配置第三方平台的key
接下来我们来看下src->main->assets下的ShareSDK.xml文件
<ignore_js_op>
这里打开后我们可以看到ShareSDK的appkey,前面注册的时候我们已经介绍过,注册完的appkey替换这里默认的appkey(必要)
其次就是第三方的appid或者appkey等了,这些第三方的key需要开发者去对应的第三方平台去申请,我们为用户提供了部分常用平台的申请流程,
可以参考下《各个社交平台申请流程》
OK,到此位置我们可以进入到自己的应用中做分享了哦,
第七步:初始化ShareSDK
使用ShareSDK必须要初始化,初始化代码如下
- ShareSDK.initSDK(Context,"sharesdk的appkey");
初始化第一个参数传当前activity的context对象,第二个参数传ShareSDK的appkey,第二个参数可以省略不传,因为sharesdk.xml已经配置,默认会访问的;
初始化的代码尽量放到调用分享的activity的入口oncreat下就好,尽量不要再application里初始化,也可以多次调用初始化ShareSDK,初始化ShareSDK必须放到所有调用ShareSDK的最前端。
第八步:调用onekeyshare的界面分享
接下来我们配置onekeyshare的代码,如下所示
- private void showShare() {
- ShareSDK.initSDK(this);
- OnekeyShare oks = new OnekeyShare();
- //关闭sso授权
- oks.disableSSOWhenAuthorize();
- // title标题,印象笔记、邮箱、信息、微信、人人网和QQ空间等使用
- oks.setTitle("标题");
- // titleUrl是标题的网络链接,QQ和QQ空间等使用
- oks.setTitleUrl("http://sharesdk.cn");
- // text是分享文本,所有平台都需要这个字段
- oks.setText("我是分享文本");
- // imagePath是图片的本地路径,Linked-In以外的平台都支持此参数
- //oks.setImagePath("/sdcard/test.jpg");//确保SDcard下面存在此张图片
- // url仅在微信(包括好友和朋友圈)中使用
- oks.setUrl("http://sharesdk.cn");
- // comment是我对这条分享的评论,仅在人人网和QQ空间使用
- oks.setComment("我是测试评论文本");
- // site是分享此内容的网站名称,仅在QQ空间使用
- oks.setSite(getString(R.string.app_name));
- // siteUrl是分享此内容的网站地址,仅在QQ空间使用
- oks.setSiteUrl("http://sharesdk.cn");
- // 启动分享GUI
- oks.show(this);
- }
自己写个showShare()方法,里面onekeyshare的对象调用分享参数,调用show方法启动我们默认的界面;
<ignore_js_op>
调用效果如下图所示:
<ignore_js_op>

浙公网安备 33010602011771号