Android
1 需要提供给我们的信息
应用ID applicationId, 例如 com.example.test
应用签名 (32个字符)
2 获取配置信息
提供以上信息后,我们会按照这个信息,提供appKey和appSecret以及名称为cishu的文件,请妥善保管这些信息,并谨记不要用任何形式打开cishu文件。
cishu文件需放置于您项目的\app\src\main\assets\中。
我们还会提供两个aar文件,请将这两个文件放置于和app文件夹同级的libs文件夹。并在app的build.gradle的dependencies中增加如下配置
implementation fileTree(include: ['*.aar'], dir: 'libs')
// define a BOM and its version
implementation(platform("com.squareup.okhttp3:okhttp-bom:4.9.2"))
// define any required OkHttp artifacts without version
implementation("com.squareup.okhttp3:okhttp")
implementation("com.squareup.okhttp3:logging-interceptor")
3 代码编写
初始化
以下方式,二选一即可
方式一(无数据返回):
WordSearchManager.getInstance().sdkInit("填入您的appKey", "填入您的appSecret");
方式二(调用接口并返回当前账户书籍列表数据):
WordSearchManager.getInstance().sdkInit("填入您的appKey", "填入您的appSecret", new WordSearchCallback() {
@Override
public void onSuccess(WordSearchContentBean contentBean) {
System.out.println("书籍列表数据: " + contentBean.content);
}
@Override
public void onFailed(int errorCode, String message) {
System.out.println(errorCode + " : " + message);
}
});
获取书籍列表
WordSearchManager.getInstance().sdkGetBooks(MainActivity.this, new WordSearchCallback() {
@Override
public void onSuccess(WordSearchContentBean contentBean) {
System.out.println("书籍列表: " + contentBean.content);
}
@Override
public void onFailed(int errorCode, String message) {
System.out.println(errorCode + " : " + message);
}
});
获取定性语 (要查询的字词可以获取哪些类型的结果)
WordSearchManager.getInstance().sdkGetStructType(MainActivity.this, wordToSearch, new WordSearchCallback() {
@Override
public void onSuccess(WordSearchContentBean contentBean) {
System.out.println("可查询类型(定性语结果): " + contentBean.content);
}
@Override
public void onFailed(int errorCode, String message) {
System.out.println(errorCode + " : " + message);
}
});
/**
* 单字笔顺查询
*/
BASIC,
/**
* 精确搜索,需要传入书籍id
*/
WORD,
/**
* 百科
*/
ENCYCLOPEDIA,
/**
* 历史纪年
*/
EPOCH,
/**
* 古今地名
*/
PLACE_NAME,
/**
* 英译中
*/
ENGLISH
/**
* 中译英
*/
CHINESE_ENGLISH
查询结果(增加了字体加密)
searchWithType(editText.getText().toString().trim(), "WORDS", "1,40");
/**
* 根据类型请求结果
* @param w
* @param type
* @param params , 使用,分隔 (如bookId)
*/
private void searchWithType(String w, String type, String params) {
System.out.println("查询类型: " + type);
WordSearchManager.getInstance().sdkSearchContent(MainActivity.this, w,
new WordSearchCallback() {
@Override
public void onSuccess(WordSearchContentBean contentBean) {
System.out.println("查询结果 Start ############################");
System.out.println(contentBean.content == null ? "" : contentBean.content);
System.out.println("查询结果 End ############################");
System.out.println("字体信息 Start ############################");
System.out.println(contentBean.fontInfo == null ? "" : contentBean.fontInfo);
System.out.println("字体信息 End ############################");
String contentResult = contentBean.content == null ? "" : (contentBean.content + "\n");
contentResult += contentBean.fontInfo == null ? "" : (contentBean.fontInfo + "\n");
textView.setText(contentResult);
// 示例中给出了下载字体并设置字体的代码,这里不再赘述,您也可以按照自己的方式下载和设置字体。
}
@Override
public void onFailed(int errorCode, String message) {
System.out.println(errorCode + " : " + message);
}
}, type,params);
}
设置请求连接超时时间
// 单位:s , 默认请求超时时间是5秒,最短建议不少于3秒
WordSearchManager.getInstance().setSdkRequestTimeout(6);
多个签名情况下,动态设置cishu文件路径
// 设置cishu文件路径: 路径必须在Assets目录下或Assets子目录下,cishu 文件也可自定义命名;
// 不设置此方法默认取Assets目录下cishu文件
WordSearchManager.getInstance().sdkFilePath("debug/debug_cishu");
查词弹框方法
/**
* 查词SDK弹框方法
* @param activity 页面Activity
* @param text 查询的文本
* @param offsetY 距离屏幕左上角的Y轴偏移量
* @param maxHeight 弹框最大高度
*/
public void sdkTextSearch(Activity activity, String text, int offsetY, int maxHeight)
使用示例:搜索‘中’一字,offsetY为显示框Y轴位置,
maxHeight为显示框最大高度
WordSearchManager.getInstance().sdkTextSearchDialog(MainActivity.this, "中", 50, 300);
4 错误码说明
SDK返回错误
errorCode: -1000 SDK接口认证失败
errorCode: -1001 SDK接口查询参数异常
errorCode: -1003 SSL握手失败(手机时间设置错误导致)
errorCode: -1004 请求过于频繁
errorCode: -1005 请求接口超时
errorCode: -1006 网络异常
errorCode: -1007 其他错误
errorCode: -1008 查词词语长度过长,无法查询