前置条件

  1. SDKDemo工程默认指定的的gradle版本如下:
//gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip

//build.gradle
dependencies {
        classpath 'com.android.tools.build:gradle:4.1.1'
    }

2. 如果编译SDKDemo出现编译问题,提示如下错误:

This version of the Android Support plugin for IntelliJ IDEA (or Android Studio) cannot open this project, please retry with version 4.1 or newer.

3. 请将SDKDemo中gradle-wrapper.properties文件默认指定的版本号, 以及build.gradle中dependencies的版本号修改成本地AndroidStudio工程的能正常编译的工程版本即可

1. SDKDemo

SDKDemo是主应用示例Demo,里面包含了文档中四个典型场景的实现,下面介绍下四大场景在Demo中的关键代码

SDK初始化+注销事件监听

SDKDemo中示例代码如下:

public class SFApplication extends Application {

     @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        sContext = base;

        /**
         * 初始化sdk,推荐在attachBaseContext中调用,因为sdk延后初始化会导致多进程场景下,子进程无法拥有sdk的能力
         */
        initSdk(base);
        GlobalListenerManager.getInstance().init(base);
    }
}

用户名密码认证场景

SDKDemo中示例代码如下:

public class PrimaryAuthActivity {

  //参考SDKDemo中 PrimaryAuthActivity实现

}

用户名密码+短信认证场景

SDKDemo中示例代码如下:

public class SecondAuthActivity {

  //参考SDKDemo中 SecondAuthActivity

}

用户名密码+启用SPA场景

SDKDemo中示例代码如下:

public class SpaAuthActivity {

  //参考SDKDemo中 SpaAuthActivity

}

主从应用-主应用场景

SDKDemo中示例代码如下:

public class GlobalListenerManager {

  //参考SDKDemo中 GlobalListenerManager

}

2. SubAppDemo

SubAppDemo是子应用示例Demo,里面包含了主从场景下子应用的处理逻辑

SDK初始化+注销事件监听

SubAppDemo中示例代码如下:


public class SFApplication extends Application {
    private static final String TAG = "SFApplication";

    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);

                /**
         * 初始化sdk,推荐在attachBaseContext中调用,因为sdk延后初始化会导致多进程场景下,子进程无法拥有sdk的能力
         */
        initSdk(base);
        /**
         * 初始化注销监听回调
         */
        GlobalListenerManager.getInstance().init(base);
    }

     @Override
    public void onCreate() {
        super.onCreate();
        /**
         * 前后台监听逻辑,需要在attachBaseContext之后调用
         */
        AppForegroundManager.getInstance().init(this);
    }
}

指定主应用包名

  <!-- 参考SubAppDemo的AndroidManifest.xml -->
    <meta-data
        android:name="host_data"
        android:value="com.sangfor.sdkdemo" />

应用启动场景下的免密认证+跳转主应用授权逻辑

public class LoginAuthActivity {
      //参考SubAppDemo中 LoginAuthActivity
}

注销事件监听处理

public class GlobalListenerManager {
      //参考SubAppDemo中 GlobalListenerManager
}

前台事件监听处理

public class AppForegroundManager {
      //参考SubAppDemo中 AppForegroundManager处理
}

results matching ""

    No results matching ""