本文档描述了 Android 开发者如何集成 Novel SDK(后面简称为 NovelSdk),通过集成 NovelSdk 为 App 引入丰富的小说内容。
AppId:应用 id,18位 hex 字符串。【注意】调试时请使用测试 appId:ba0063bfbc1a5ad878;外发版本请替换成正式 appId,否则不会产生收益。
UserId:用户 id,接入方定义的用户唯一标识,userId 和用户小说积分、奖励信息相关联。
通过在 Android Studio 工程的 build.gradle 配置脚本中添加 maven 依赖,导入最新版本 NovelSdk。
allprojects {
repositories {
maven {
credentials {
username 'iqLuKm'
password 'pomH01oYcR'
}
url 'https://repo.rdc.aliyun.com/repository/117933-release-sPkE7F/'
}
}
}
【注意】加在 allprojects 中,不要加在 buildscript 中哦。
dependencies {
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.3'
implementation 'com.mob.sdk:adsdk:2.7.24'
implementation 'com.mob.sdk:novelsdk:1.0.1'
}
将 NewsSdk 的 aar 包复制到 Application Module 的 libs 目录下(无此目录需手动创建), 并在工程的 build.gradle 中添加如下配置:
repositories {
flatDir {
dirs 'libs'
}
}
depedencies {
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.3'
implementation(name: 'adsdk-2.7.24', ext: 'aar')
implementation(name: 'novelsdk-1.0.1', ext: 'aar')
}
开发者需要在 Application 实例的 onCreate() 方法中调用以下代码来初始化 NovelSdk。
public class DemoApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// 初始化 AdSdk,小说中可以展现广告
AdSdk.getInstance().init(getApplicationContext(),
new AdConfig.Builder()
.appId(APP_ID)
.userId(userId) // 未登录可不设置 userId,登录时再设置
.multiProcess(false)
.debug(BuildConfig.DEBUG)
.build(),
null);
NovelSdk.getInstance().init(getApplicationContext(),
new NovelConfig.Builder()
.appId(APP_ID)
.userId(userId) // 未登录可不设置 userId,登录时再设置,userId 关联用户积分信息
.debug(BuildConfig.DEBUG)
.build(),
null);
}
}
初始化配置参数说明:
private String appId; // 应用程序 id
private String userId; // 用户 id
private boolean debug; // 是否 debug 模式,是则输出日志
登录时请设置 userId:
NovelSdk.getInstance().setUserId(userId);
退出登录请重置 userId:
NovelSdk.getInstance().setUserId(null);
NovelSdk 将小说封装成了 NovelFragment,接入方只需将 NovelFragment 放置在对应的 container 容器中即可,具体调用方式可以参考 Demo 中的 NovelActivity。
public class NovelActivity extends AppCompatActivity {
private NovelFragment mNovelFragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_novel);
mNovelFragment = NovelFragment.newInstance();
getSupportFragmentManager() // fragment 嵌套替换成 getChildFragmentManager()
.beginTransaction()
.replace(R.id.container, mNovelFragment)
.commitNowAllowingStateLoss();
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (mNovelFragment.onKeyDown(keyCode, event)) {
return true;
}
return super.onKeyDown(keyCode, event);
}
}
如果启用了看小说发积分的功能,需要设置奖励回调,示例如下:
mNovelFragment.setRewardListener(new NovelFragment.RewardListener() {
@Override
public void onReward(String id, float amount) {
// 发放积分,amount 为积分数
}
});