Android友盟分享(微信简单集成)
1.准备资料
1.1 申请微信应用
登录微信开放平台申请账号,登陆之后进入管理中心申请应用
微信开放平台
点击创建应用,将自己的资料填进去就行了,微信将会进行审核,7个工作日内完成,一般也就两三天。将审核通过的AppID和AppSecret保存下来备用
1.2 申请友盟账号
在友盟上注册账号,然后注册应用,比较简单,和之前微信的一样就行,但是不用审核,申请之后将AppKey保存
1.3 下载友盟sdk
在友盟上面选择开发者平台,然后选择社会化分享SDK ,点击设置,选择下载之前先选择你所需要的平台。
其他的如果有需求也可以点击勾选。然后下载sdk
common基础sdk 将其中的jar包复制到你的项目
share 分享sdk将其中的所有jar复制到你的项目
2.配置文件
2.1 配置友盟AppKey
在AndroidMainfest文件中添加权限
<!-- 友盟必须的权限 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
在AndroidMainfest文件中application中配置Appkey
<meta-data
android:name="UMENG_APPKEY"
android:value="你的友盟appkey" />
2.2 初始化友盟sdk
在你的BaseApplication中onCreate方法中添加代码
@Override
public void onCreate() {
super.onCreate();
app = this;
//打开友盟调试 如果配置失败 会有提示信息 可根据提示信息修改配置代码
UMConfigure.setLogEnabled(true);
UMConfigure.init(this,"","umeng",UMConfigure.DEVICE_TYPE_PHONE,"");
//设置微信
PlatformConfig.setWeixin("微信AppId", "微信AppSecret");
}
2.3 配置微信回调activity
在根目录下新建wxapi包 在这个包下创建 名为WXEntryActivity的类 继承WXCallbackActivity类
package com.big.fishcash.cash.wxapi;
import com.umeng.socialize.weixin.view.WXCallbackActivity;
public class WXEntryActivity extends WXCallbackActivity {
}
并在AndroidMainfest注册
<activity
android:name=".wxapi.WXEntryActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:theme="@android:style/Theme.Translucent.NoTitleBar"></activity>
此时就配置完成了
3.使用分享
3.1 在所需的地方添加如下代码
new ShareAction(WebActivity.this)
.setPlatform(SHARE_MEDIA.WEIXIN)//传入平台
.withText(“分享内容”)//分享内容
.setCallback(shareListener)//回调监听器
.share();
3.2 回调监听器
在这里同时新建一个回调监听器
private UMShareListener shareListener = new UMShareListener() {
/**
* @descrption 分享开始的回调
* @param platform 平台类型
*/
@Override
public void onStart(SHARE_MEDIA platform) {
}
/**
* @descrption 分享成功的回调
* @param platform 平台类型
*/
@Override
public void onResult(SHARE_MEDIA platform) {
//toast吐司
ToastUtil.showToast("成功了");
}
/**
* @descrption 分享失败的回调
* @param platform 平台类型
* @param t 错误原因
*/
@Override
public void onError(SHARE_MEDIA platform, Throwable t) {
ToastUtil.showToast("失败");
}
/**
* @descrption 分享取消的回调
* @param platform 平台类型
*/
@Override
public void onCancel(SHARE_MEDIA platform) {
ToastUtil.showToast("取消了");
}
};
4.常见问题
大多数的常见问题友盟debug都能查到,失败之后直接看日志就行,我分享个我遇到的bug
出现bug的时候log会有输出如下图
以上并不是我的出错信息,试一些常见问题和解决方法,你的包名 和 你的签名,这个签名就是在申请微信应用的时候添加的签名,以下是我的错误
问题写的很明白,权限验证失败,签名错误。因为我的微信上面申请应用的签名和我打包用的签名不同,将微信平台上的应用签名更改成上述提示的微信签名即可,然后清除微信数据重新登录微信,因为微信会由之前保留的数据也会造成失败。