美文网首页Android技术知识AndroidAndroid进阶之路
Android 第三方登录分享支付从未如此简单

Android 第三方登录分享支付从未如此简单

作者: Hacknife | 来源:发表于2018-10-28 13:56 被阅读29次

    loginsharepay集成QQ,微博,微信的登录和分享。它配置简单,使用方便,且能够快速运用到应用中,为开发者节省了大量时间。
    github:https://github.com/hacknife/LoginSharePay

    使用说明

    QQ,微博,微信的登录和分享必须通过LoginShare类来实现,如果你只想实现登录功能,那么这两个方法就可以不用实现(onNewIntent(Intent intent),onActivityResult(int requestCode, int resultCode, Intent data))。English

    代码示例

    public class MainActivity extends AppCompatActivity implements OnLoginshareListener {
        LoginSharePay loginShare;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            loginShare = new LoginSharePay (this);
        
            //loginShare.launchQQLogin();
            //loginShare.launchWechatLogin();
            //loginShare.launchWeiboLogin();
        //loginShare.launchQQShare(MessageBody.QQMessageBodyBuilder());
            //loginShare.launchWechatShare(MessageBody.WechatMessageBodyBuilder());
            //loginShare.launchWeiboShare(MessageBody.WeiboMessageBodyBuilder());
        }
    
        @Override
        protected void onStart() {
            super.onStart();
            loginShare.register(this);
        }
    
        @Override
        protected void onDestroy() {
            super.onDestroy();
            loginShare.unRegister();
        }
    
        @Override
        protected void onNewIntent(Intent intent) {
            super.onNewIntent(intent);
            loginShare.onNewIntent(intent);
        }
    
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            loginShare.onActivityResult(requestCode, resultCode, data);
            super.onActivityResult(requestCode, resultCode, data);
        }
        
        /**
         * @param type 类型 QQ ,Wechat 或 Weibo
         * @param info json格式字符串的用户信息
         */
        @Override
        public void onLoginSuccess(Type type, String info) {
        }
    
        @Override
        public void onLoginCancel(Type type) {
        }
    
        @Override
        public void onLoginError(Type type, int errorCode) {
        }
    
        @Override
        public void onShareSuccess(Type type) {
        }
    
        @Override
        public void onShareCancel(Type type) {
        }
    
        @Override
        public void onShareError(Type type, int code) {
        }
    

    如何配置

    将本仓库引入你的项目:

    Step 1. 添加JitPack仓库到Build文件

    合并以下代码到项目根目录下的build.gradle文件的repositories尾。点击查看详情

        allprojects {
            repositories {
                ...
                maven { url 'https://hacknife.com' }
                maven { url "https://dl.bintray.com/thelasterstar/maven/" }
            }
        }
    

    Step 2. 添加依赖

    合并以下代码到需要使用的application Module的dependencies尾,注意替换version版本号。点击查看详情

        dependencies {
                    ...
               compile 'com.hacknife:loginsharepay:version'
               compile 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+'
               compile 'com.sina.weibo.sdk:core:4.1.0:openDefaultRelease@aar'
        }
    

    Step 3. 设置JniLibs目录

    合并以下代码到你的application module的build.gradle。点击查看详情

    android {
        ...
        sourceSets {
            main() {
                jniLibs.srcDirs = ['libs']
            }
        }
    }
    
    

    Step 4. 复制动态库文件

    点击这里下载 动态文件,解压并复制文件到libs目录。
    [图片上传失败...(image-70fc10-1540706096564)]

    Step 5. 复制Java文件

    点击这里下载 Java文件,解压并复制文件到应用包。
    [图片上传失败...(image-348050-1540706096565)]

    Step 6. 修改AndroidManifest文件

    复制代码且合并到Application标签

        <application 
            android:icon="@mipmap/app_logo"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/app_logo_round"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
        ......
            <meta-data
                android:name="qq"
                android:value="qq_key" />
            <meta-data
                android:name="wechat"
                android:value="wechat_key" />
            <meta-data
                android:name="wechatSecret"
                android:value="wechat_secret" />
            <meta-data
                android:name="weibo"
                android:value="weibo_key" />
            <meta-data
                android:name="weiboRedirectUrl"
                android:value="weibo_redirectUrl" />
            <meta-data
                android:name="weiboScope"
                android:value="weibo_scope" />
            <activity
                android:name="com.tencent.tauth.AuthActivity"
                android:launchMode="singleTask"
                android:noHistory="true">
                <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="tencent1234567" />
            <!-- tencent+qq_key -->
                </intent-filter>
            </activity>
            <activity
                android:name="com.tencent.connect.common.AssistActivity"
                android:configChanges="orientation|keyboardHidden"
                android:screenOrientation="behind"
                android:theme="@android:style/Theme.Translucent.NoTitleBar" />
    
            <!-- java file corresponds to it  -->
            <activity
                android:name=".wxapi.WXEntryActivity"
                android:exported="true"
                android:label="@string/app_name" />     
        ......
    
    

    step 7. 修改签名

    申请的第三方账户的签名必须与应用的签名一致。 否则,登录和分享会出现问题。


    相关文章

      网友评论

      • sssssss_:写得很简洁!如果有效果图就更好了
        Hacknife:微信,微博开发者账号不好弄

      本文标题:Android 第三方登录分享支付从未如此简单

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