原因:到官方网站集成第三方应用的分享,很麻烦,除了微信之外,我们还可能做qq、qq空间、微博、其他的等等,都自己写耽误时间还容易错,因此我们用第三方,直接一起全部集成,这里以qq、微信为例。
1,首先登录shareSDK的官网,http://mob.com/,下载shareSDK,解压到合适的文件夹中,进入到“ShareSDK for Android”文件夹。
这时看到的目录应该是这样的:
2,点击QuicIntegrater.jai,弹出下图所示的界面,填写自己应用的项目名称和包名,选择需要分享的第三方应用。
3,会生成一个以项目名称为名的文件夹,将此文件中的内容,根据名称,移到项目中对应的文夹中就行。
4,打开androidManifest.xml文件,添加权限。
<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" />
5,添加权限之后,在填写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" >
<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>
<!-- 调用新浪原生SDK,需要注册的回调activity -->
<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
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=".apshare.ShareEntryActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"/>
6,前三步基本配置完成,接下来需要你开发的应用信息,到mob后台申请Appkey,和你集成的其他第三方平台的Appkey。
7,Appkey申请完成,接下来该填入应用的配置文件中,在assets下的ShareSDK.xml中
老版本:
新版本在androidManifest
<meta-data android:name="Mob-AppKey" android:value="2665cc9e3a86c" /> <meta-data android:name="Mob-AppSecret" android:value="2176f1d39096c8cb62fc1d7353eca355" />
还有其他的各平台Appkey,都在ShareSDK.xml中。
8,填写调用代码
有两处位置需要添加,
(1),在程序启动的时候,添加
ShareSDK.initSDK(this);//初始化和启动
(2),在随便哪一个位置showShare()方法,只要在需要的时候调用即可。
private void showShare() {
OnekeyShare oks = new OnekeyShare();
//关闭sso授权
oks.disableSSOWhenAuthorize();
// title标题,印象笔记、邮箱、信息、微信、人人网、QQ和QQ空间使用
oks.setTitle("标题");
// titleUrl是标题的网络链接,仅在Linked-in,QQ和QQ空间使用
oks.setTitleUrl("http://sharesdk.cn");
// text是分享文本,所有平台都需要这个字段
oks.setText("我是分享文本");
//分享网络图片,新浪微博分享网络图片需要通过审核后申请高级写入接口,否则请注释掉测试新浪微博
oks.setImageUrl("http://f1.sharesdk.cn/imgs/2014/02/26/owWpLZo_638x960.jpg");
// imagePath是图片的本地路径,Linked-In以外的平台都支持此参数
//oks.setImagePath("/sdcard/test.jpg");//确保SDcard下面存在此张图片
// url仅在微信(包括好友和朋友圈)中使用
oks.setUrl("http://sharesdk.cn");
// comment是我对这条分享的评论,仅在人人网和QQ空间使用
oks.setComment("我是测试评论文本");
// site是分享此内容的网站名称,仅在QQ空间使用
oks.setSite("ShareSDK");
// siteUrl是分享此内容的网站地址,仅在QQ空间使用
oks.setSiteUrl("http://sharesdk.cn");
// 启动分享GUI
oks.show(this);
}
9.完成。
说明:界面啊,图标的什么的,都不用自己来做,都是现成的,只要按照上面来做,就可以完成分享的功能,如果需要修改分享界面,可以集成成功之后,自己阅读代码修改,或登录官网寻找相应文档。