友盟SDK实现微信登录

作者: 手指乐 | 来源:发表于2019-08-22 17:33 被阅读5次
    1. 在友盟后台新建产品,获取Appkey
    2. 下载社会化分享 SDK(包含分享、登录功能)
    3. 解压后,把common、share/main下面的所有jar拷贝到工程的lib目录下,所有res资源拷贝到工程的对应目录下,把share/platforms下面所需平台的jar拷贝到工程的lib目录下,res资源拷贝到工程的对应目录下
    4. 在项目application类中初始化umeng和微信:
     public void onCreate() {
            super.onCreate();
            UMConfigure.init(this,
                    "xxxxx",//友盟appkey
                    "umeng",
                    UMConfigure.DEVICE_TYPE_PHONE,"");
    
            PlatformConfig.setWeixin("xxx",//微信appid
                    "xxx");//微信AppSecret
        }
    
    1. 加入权限声明:
    <uses-permission android:name="android.permission.INTERNET"/>
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
        <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
        <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    

    如果targetSdkVersion大于22,还需要动态申请权限:

    if(Build.VERSION.SDK_INT>=23){
                      String[] mPermissionList = new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.CALL_PHONE,Manifest.permission.READ_LOGS,Manifest.permission.READ_PHONE_STATE, Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.SET_DEBUG_APP,Manifest.permission.SYSTEM_ALERT_WINDOW,Manifest.permission.GET_ACCOUNTS,Manifest.permission.WRITE_APN_SETTINGS};
                      ActivityCompat.requestPermissions(this,mPermissionList,123);
                  }
    
    1. 在包名目录下创建wxapi文件夹,新建一个名为WXEntryActivity的activity继承WXCallbackActivity

    WXCallbackActivity是umeng sdk提供的,WXEntryActivity不需要写任何额外代码

    1. 配置Android Manifest XML,加入:
     <activity
                android:name=".wxapi.WXEntryActivity"
                android:configChanges="keyboardHidden|orientation|screenSize"
                android:exported="true"
                android:theme="@android:style/Theme.Translucent.NoTitleBar" />
    
    1. 响应微信登录点击按钮:
    public void onLogin(View view) {
            UMShareAPI.get(this).getPlatformInfo(this, SHARE_MEDIA.WEIXIN, new UMAuthListener() {
                @Override
                public void onStart(SHARE_MEDIA share_media) {
                    Log.e("bp","onStart");
                }
    
                @Override
                public void onComplete(SHARE_MEDIA share_media, int i, Map<String, String> map) {
                    Log.e("bp","onComplete");
                }
    
                @Override
                public void onError(SHARE_MEDIA share_media, int i, Throwable throwable) {
                    Log.e("bp","onError");
                }
    
                @Override
                public void onCancel(SHARE_MEDIA share_media, int i) {
                    Log.e("bp","onCancel");
                }
            });
        }
    

    相关文章

      网友评论

        本文标题:友盟SDK实现微信登录

        本文链接:https://www.haomeiwen.com/subject/rgkosctx.html