技术的发展和完善,简直让人跟不上。前段时间才开放了一个百度社会化分享插件,没几个月百度的社会化分享sdk都升级了。而且增加了一些其他的特性,增加qq好友分享,优化了微信分享。
所以今天又基于新的sdk,对从新开发了社会化分享的插件。
先上图看看,根据跟v1.0版本的差不多,ui也做了优化。
本插件支持:微信分享+ 微信朋友圈分享
不得不说这次跟新,对微信和qq分享做了很大优化。
1.下载插件包。
2. 解压所下载的包,从lib目录中得到所需要的所有的库:
Baidu-SocialShare-SDK-Android-2.0.0.jar
添加到你的项目中。
3. 修改AndroidManifest.xml,增加以下权限:
<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.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
4. 在AndroidManifest.xml中增加jar中需要的Activity。
<activity android:name="com.baidu.cloudsdk.social.oauth.SocialOAuthActivity"
android:exported="true"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen">
</activity>
<activity
android:name="com.baidu.cloudsdk.social.share.handler.LocalShareActivity"
android:launchMode="singleTask">
</activity>
<activity android:name="com.baidu.cloudsdk.social.share.handler.QQFriendShareReceiverActivity"
android:launchMode="singleTask">
<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此处为腾讯开放平台APPKey" />
</intent-filter>
</activity>
<!-- 用户微信回调的 activity -->
<activity android:name=".wxapi.WXEntryActivity"
android:label="@string/app_name"
android:exported="true"
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen">
</activity>
5.拷贝src文件夹里面的2个java文件到你的src中
6. 拷贝assert目录下config.json文件到你的项目对应文件夹里面。并修改为自己的信息。
{
client_ids:
{
baidu:"填写在百度开发者中心注册的app key",
sinaweibo:"填写在微博开放平台注册的app key",
qqdenglu:"填写在腾讯开放平台注册的app key",
qqfriend:"填写在腾讯开放平台注册的app key",
weixin:"填写在微信开放平台注册的app key"
},
client_names:
{
qqfriend:"分享给qq好友所要显示的应用名称"
},
supported_medias:
["sinaweibo","qqweibo","qqdenglu","kaixin","renren","qqfriend","weixin","weixin_timeline","email","sms"]
}
这些信息可以参考百度开发者中心帮助文档来申请。
具体的如何设置可以看他们的帮助文档。
7.在config.xml文件下面引入插件.
2.x 和3.x 的插件添加代码是不同的,一点注意!具体可以参考官网。
<feature name=”Baidushare”>
<param name=”android-package” value=”com.xhuayi.dgoula.Baidushare” />
</feature>
8. 修改html代码
引入baidushare.js文件到主文件里面
添加以下方法调用插件:
function shareClick(){
var title= “深圳市贸促委”;
var content = “深圳市贸促委品牌加盟展APP下载!”;
var url = “http://pic1.win4000.com/pic/6/3c/9b5f279921.jpg”;
var imageurl = “http://pic1.win4000.com/pic/6/3c/9b5f279921.jpg”;
window.plugins.Baidushare.bdshare(
title,content,url,imageurl,function(success) {
if(success == 1){
alert(“分享成功!”); //做业务处理
}else if(success == 2){
alert(“未分享成功!”);//做业务处理
}else{
alert(“encode success: ” + success);
}}, function(fail) {
alert(“encoding failed: ” + fail);
}
);
}
这样基本上就可以运行起来。分享你需要的内容到各个平台。
这些需要注意:
1.需要先把百度社会化分享的开发文档看看
2.如果需要自己配置第三方平台就一个一个申请。如果不需要就默认好了。
3.微信分享就比较麻烦。最好去微信开放平台看看开发文档,需要做好包名和签名,并提交后审核,只有审核通过的才能分享。而且微信的分享是有限制的所有分享的内容和图片最好是小一些。
4.我这里只是做网页分享。其实百度分享还有图片分享,以及单个平台分享,为了满足绝大多数就只做了网页分享。
对于微信分享不能成功的需要说明的几个问题:
为什么测试的时候就能分享,但是一大包就不能分享了呢?其实问题还是签名的问题:
1、还是签名问题,一个项目,几个人完成的话,如果大家都是用各自默认的debug.keystore进行运行的话,在debug版本,微信分享功能肯定只有在申请的微信appid的那台机器生产的apk才能正常。 但是其他人或者发布大包后的apk不能使用?
怎么办?
别担心,还有补救的方法,用我们正式那个签名文件xxx.keystore对程序进行正式的打包,然后安装到手机中,然后再次运行微信那个签名apk工具,将我们的包名输入到里面,重新生成一个MD5的签名,然后到官网http://open.weixin.qq.com/agreement,找到你之前等级那个应用,拉到最后,点击修改,将刚刚生成的那个签名输入到里面,然后保存重新提交审核。
对于微信分享,我也一直很混乱,研究了很久总有发现还是自己太粗心。关键在于微信的签名问题,一定记得获取签名的时候是用正式打包后的apk,安装到手机再来获取微信的签名,这样联机调试虽然不能分享,但打包出来之后就能分享了。
插件下载: 百度社会化分享插件v2.0 【商业插件暂不公开使用】
=============【3.0以后插件config.xml】============================
<feature name=”Baidushare”>
<param name=”android-package” value=”com.phonegap.helloworld.Baidushare” />
</feature>