利用一登给你的react-native项目增加刷脸登录功能之安卓篇

安卓的思路和iOS的思路一样,都是在原生端完成登录后,跳转到react-native的页面。

为此,我们首先要了解安卓的两种常用的界面跳转方式。(若已熟悉安卓的界面跳转可忽略此步)

1.安卓两种常用的界面跳转

1.1、Intent

Intent适合Activity与Activity之间的跳转,按返回键可以直接返回前一页面

缺点:需要到Manifest注册Activity

1.2、setContentView

适合同一Activity里的不同View之间跳转

优点:按返回键不会返回到前一页面,需要自己添加按键监听代码来实现

参考:blog.csdn.net/mrlixirong/article/details/6783092

本例子用的是第一种方式:Intent的Activity与Activity之间的跳转。

2.根据一登开发者文档配置项目

在Android Studio 中打开你的react-native项目中的安卓项目,并根据一登开发者文档配置SDK的依赖和一些相关的信息,一登安卓开发者文档:www.superid.me/developer/document-android/android_quickstart.html

这里只需要做到文档的第五部即可,第六步登录的Activity待会自己写一个登录的Activity,再把刷脸登录方法放进去。

3.实现刷脸登录

3.1简单了解安卓的启动过程

刚创建的react-native项目中安卓项目有两个Activity:

利用一登给你的react-native项目增加刷脸登录功能之安卓篇_第1张图片
react-native项目目录.jpg

其实安卓程序的入口必须是某个Activity,也就是说必定是这两个中的其中一个,这个Activity从程序一启动就引领着程序进入来react-native页面。但是我们不希望这样,我们希望的是先进入一登的登录页面,在进去react-native的页面。所以我们需要修改程序一开始进入的页面,也就是进入我们即将需要创建的LoginActivit。

我们再来看看AndroidMainfest.xml文件

利用一登给你的react-native项目增加刷脸登录功能之安卓篇_第2张图片
AndroidMainfest.xml文件.jpg

从配置文件可以看的,MainActivity中配置了一个intent-filter,其中又一个关键字是Main,也就是说这个Activity是程序的入口,相当于c程序中的main函数一样。接下来我们需要自己创建一个LoginActivity来执行一登的刷脸登录,登录成功后在跳转到react-native页面(MainActivity)中。

3.2创建LoginActivity

利用一登给你的react-native项目增加刷脸登录功能之安卓篇_第3张图片
创建LoginActivity.jpg

LoginActivity的代码:

package com.qqlogin;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import com.isnc.facesdk.SuperID;
import com.isnc.facesdk.common.Cache;
import com.isnc.facesdk.common.SDKConfig;


public class LoginActivity extends AppCompatActivity{
    Button loginBtn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        SuperID.initFaceSDK(this);
        SuperID.setDebugMode(true);
        loginBtn = (Button)findViewById(R.id.loginBtn);

        loginBtn.setOnClickListener(new View.OnClickListener() {

            public void onClick(View view) {
                  SuperID.faceLogin(LoginActivity.this);
            }
        });
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        switch (resultCode) {
            case SDKConfig.LOGINSUCCESS:
                String openid = Cache.getCached(LoginActivity.this, SDKConfig.KEY_OPENID);
                String userInfo = Cache.getCached(LoginActivity.this, SDKConfig.KEY_APPINFO);

//                SuperID.faceLoginWithPhoneUid( LoginActivity.this, "13420120434", "suyue", openid, userInfo);
                Intent intent = new Intent(LoginActivity.this,
                        MainActivity.class);
                startActivity(intent);
                finish();
                Toast.makeText(LoginActivity.this, "你好啊老铁!!!", Toast.LENGTH_SHORT).show();
                break;
            case SDKConfig.LOGINFAIL:
                Toast.makeText(LoginActivity.this, "滚吧!!!", Toast.LENGTH_SHORT).show();
                break;
            default:
                Toast.makeText(LoginActivity.this, "滚吧!!!", Toast.LENGTH_SHORT).show();
                break;
        }
    }
}

其实。LoginActivity中就添加来一个按钮,点击进入一登的刷脸登录页面。

利用一登给你的react-native项目增加刷脸登录功能之安卓篇_第4张图片
activity_login.xml.jpg

activity_login.xml代码如下:



    
    

3.3将LoginActivity设置为程序进来的第一个Activity

打开AndroidMainFest.xml配置如下Activity:

利用一登给你的react-native项目增加刷脸登录功能之安卓篇_第5张图片
91991514200747_.pic.jpg

可以看到,此时的Main在LoginActivity中,即程序开始时先进入我们写好的登录页面。

到这里安卓的刷脸登录然后跳转到react-native页面就大功告成啦

赶紧拿真机测试一下吧!!!

注意,必须要拿真机测试,因为需要用到摄像头!!!

效果图如下:

利用一登给你的react-native项目增加刷脸登录功能之安卓篇_第6张图片
效果图.jpg

你可能感兴趣的:(利用一登给你的react-native项目增加刷脸登录功能之安卓篇)