移动端sdk

移动端sdk

移动端sdk具有冰狐智能辅助APP的所有核心功能,开发者可以将冰狐智能辅助移动端sdk集成到自己的app中使用。

点击这里下载「移动端sdk」

点击这里下载demo,demo演示了如何正确使用冰狐智能辅助移动端sdk,可以直接编译成app使用。推荐使用gradle-8.0-bin、java17、Android Studio Giraffe。

使用方法如下:

1.拷贝sdk

将aznfz.aar拷贝到app的libs目录下

2.引用sdk

在app的build.gradle文件最后dependencies{}中添加 implementation(fileTree("libs"))

3.添加其他依赖库

由于aznfz.aar是在本地libs中引入的,所以需要在app的build.gradle文件最后dependencies{}中添加如下依赖:
implementation ('io.netty:netty-all:4.1.36.Final')
implementation ('com.squareup.okhttp3:okhttp:3.8.1')
implementation ('it.sauronsoftware.cron4j:cron4j:2.2.5')
当然你也可以使用fat aar或者创建本地maven库来避免添加这些依赖

4.调用sdk

正确引用sdk后,点击as右边的"Maven Projects",然后点击刷新。下面以demo为例讲解如何使用sdk: demo中有三个activity,分别为:StartupActivity、LoginActivity、MainActivity,在StartupActivity初始化并自动登录,若登录成功则直接进入Main界面,若登录失败则进入Login界面,输入用户名和密码后登录。
initautoLoginloginlogoutonCreateonResumeonPauseonDestroysetStateListenersetMessageListenerexeScripttoggleProdModegetProdModegetDeviceNamegetUsername

init

初始化引擎,建议在StartupActivity的OnResume中调用,会调用多次。在init中系统会检测权限是否都开启,若没有开启则自动提醒用户开启相关权限,否则无法正常使用。
参数:
参数名 类型 说明
activity Activity 当前activity
listener InitListener 当初始化完成后系统会自动调用该接口的onInitResult(boolean success)函数

autoLogin

自动登录,当init成功后系统会自动调用onInitResult函数,当success为true时可以调用autoLogin进行自动登录。
参数:
参数名 类型 说明
context Context 当前Context
listener LoginListener 当登录完成后系统会自动调用该接口的onLoginResult(boolean success)函数

login

手动登录,需用户输入用户名和密码,一般当autoLogin失败后调用,当登录完成后系统会自动调用该接口的onLoginResult(boolean success)函数。
参数:
参数名 类型 说明
username String 用户名
password String 密码
parentName String 父账户名,如果是子账户登录则需要输入父账户名
listener LoginListener 监听器

logout

退出登录。当退出登录后系统会自动调用该接口的onLogoutResult(boolean success)函数
参数:
参数名 类型 说明
listener LogoutListener 监听器

onCreate

登录成功后在MainActivity的onCreate中调用。
参数:
参数名 类型 说明
context Context 当前Context

onResume

登录成功后在MainActivity的onResume中调用。
参数:
参数名 类型 说明

onPause

登录成功后在MainActivity的onPause中调用。
参数:
参数名 类型 说明

onDestroy

登录成功后在MainActivity的onDestroy中调用。
参数:
参数名 类型 说明

setStateListener

设置状态变量的listener,当系统状态变化时会自动调用该接口。
参数:
参数名 类型 说明
listener StateListener 状态监听器

setMessageListener

设置消息listener,当系统内部接收到新消息时,则自动调用调用该接口。
参数:
参数名 类型 说明
listener MessageListener 消息监听器

exeScript

执行脚本。
参数:
参数名 类型 说明
scriptName string 脚本名,注意:支持本地js文件,绝对路径、asset文件和在线脚本,例:exeScript("asset:test.js"); exeScript("/sdcard/test.js"); exeScript("test");
functionName string 函数名
boolean forceRun 当前有任务运行时,是否停止当前任务,执行新脚本
params JSON Array 参数
listener ExecuteScriptResultListener 监听器
exeDefaultTaskWhenFinished boolean 当前任务结束后是否执行默认任务

toggleProdMode

在发布模式和调试模式间切换,静态函数。
参数:
参数名 类型 说明

getProdMode

是否为发布模式,返回boolean,静态函数。
参数:
参数名 类型 说明

getDeviceName

获取设备名,返回string,静态函数。
参数:
参数名 类型 说明

getUsername

获取用户名,返回string,静态函数。
参数:
参数名 类型 说明
context Context context

addJavaObject

js调用java对象。注意在java代码中不能使用int和float类型。建议使用long,double,boolean,JSArray(对应js中的数组),JSObject(对应js中的对象)。
参数:
参数名 类型 说明
name string js中使用的对象名
obj Object java对象
例子:
java代码:
public class JavaObject {
    public String test1(String a, long x) {
        return a + x;
    }

    public long arr(JSArray a) {
        a.push(23);
        return a.getLength();
    }

    public JSObject obj(JSObject a) {
        a.put("dd", "wet");
        return a;
    }

    public long add(long a, long b) {
        return (int)(a + b);
    }

    public long bol(boolean b) {
        if (b) {
            return 3;
        }
        return 4;
    }

    public double db(double a, double    b) {
        return a + b;
    }
}
js代码:
function main() {
    var arr = [];
    arr.push('ss')
    var c = javaObj.arr(arr);
    console.log('c:' + c + '  arr:' + arr)

    var o = {de: 'wwwg'}
    var x = javaObj.obj(o)
    console.log('x:' + x)

    var x1 = javaObj.add(12, 22)
    console.log('x1:' + x1)

    var x = javaObj.test1("a", x1);
    console.log('x:' + x)

    var x2 = javaObj.bol(true)
    console.log('x2:' + x2)

    var x3 = javaObj.db(12.3, 22.4)
    console.log('x3:' + x3)

    var x4 = javaObj.adb(12.3, 22.4)
    console.log('x4:' + x4)
}
// java中注册对象
SAR.getInstance().addJavaObject("javaObj", new JavaObject());