Android友盟分享(微信简单集成)

时间:2024-03-23 19:29:11

Android友盟分享(微信简单集成)

1.准备资料

1.1 申请微信应用

登录微信开放平台申请账号,登陆之后进入管理中心申请应用
微信开放平台
点击创建应用,将自己的资料填进去就行了,微信将会进行审核,7个工作日内完成,一般也就两三天。将审核通过的AppID和AppSecret保存下来备用

1.2 申请友盟账号

友盟上注册账号,然后注册应用,比较简单,和之前微信的一样就行,但是不用审核,申请之后将AppKey保存

1.3 下载友盟sdk

在友盟上面选择开发者平台,然后选择社会化分享SDK ,点击设置,选择下载之前先选择你所需要的平台。

Android友盟分享(微信简单集成)
Android友盟分享(微信简单集成)
其他的如果有需求也可以点击勾选。然后下载sdk
Android友盟分享(微信简单集成)
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会有输出如下图
Android友盟分享(微信简单集成)

以上并不是我的出错信息,试一些常见问题和解决方法,你的包名 和 你的签名,这个签名就是在申请微信应用的时候添加的签名,以下是我的错误
Android友盟分享(微信简单集成)
问题写的很明白,权限验证失败,签名错误。因为我的微信上面申请应用的签名和我打包用的签名不同,将微信平台上的应用签名更改成上述提示的微信签名即可,然后清除微信数据重新登录微信,因为微信会由之前保留的数据也会造成失败。