资讯 News APICloud 扩展模块接入文档

概述

本文档描述了 APICloud 开发者如何集成 News 扩展模块(后面简称为模块),通过集成模块为 App 引入完备的信息流服务。

如果需要在信息流和资讯正文中展示广告,则需集成 AD 扩展模块。本文档默认需要展示广告,展示广告可以创造收益。

术语介绍

AppId:应用 id,18位 hex 字符串。【注意】调试时请使用测试 appId:ba0063bfbc1a5ad878;外发版本请替换成正式 appId,否则不会产生收益。

模块集成

  1. 上传自定义模块 adSdk、newsSdk;
  2. 在项目中添加模块 adSdk、newsSdk,确保已添加模块中包含 adSdk、newsSdk;
  3. 编译 Android 自定义 loader,编译成功后下载安装 apk 用于调试;
  4. 开发完毕后正式云打包。

模块初始化

开发者需要在 index.html 的 apiready 函数中调用以下代码来初始化模块:

// 初始化 AdSdk,资讯中可以展现广告
var adSdk = api.require('adSdk')
adSdk.setup({
    appId: APP_ID,
	userId: userId,	// 用户 id
	debug: false // 是否调试模式,默认 false,请至少运行一次调试模式
})

var newsSdk = api.require('newsSdk')
newsSdk.setup({
    appId: APP_ID,
	userId: userId, // 用户 id
    debug: false
})

登录时请设置 userId:

adSdk.setUserId({userId: userId})
newsSdk.setUserId({userId: userId})

退出登录请重置 userId:

adSdk.setUserId({userId: null})
newsSdk.setUserId({userId: null})

信息流接入

方式一

在 H5 页面中嵌入资讯信息流代码如下:

newsSdk.showNews({
    margins: [0, 84, 0, 0] // [left, top, right, bottom]
})

在 H5 页面中隐藏资讯信息流代码如下:

newsSdk.hideNews()

方式二

跳转新打开的资讯信息流页面代码如下:

newsSdk.startNews({
	title: "资讯" // 标题,可选
})

阅读倒计时(可选)

阅读资讯时可以显示倒计时,倒计时结束后给用户发放奖励。

配置倒计时示例代码如下:

newsSdk.configReadingCountdown({
	color: "#FF0000",
	bgColor: "#00FF00",
	imageUrl: "https://mobi.oss-cn-shanghai.aliyuncs.com/images/redpack.png",
	layout: "bottom",
	margins: [0, 0, 50, 50] // [left, top, right, bottom]
}, result => {
	console.log(JSON.stringify(result))
	
	if (result.event == "onReadingStart") {
		// 请按照产品需求,根据 newsUrl、newsType 判断是否启动倒计时,不给奖励可以不调用
		if (1 /* ARTICLE */ == result.newsType || 2 /* VIDEO */ == result.newsType) {
			newsSdk.startCountdown({
				newsUrl: result.newsUrl,
				countdownSeconds: 10,
				scrollEffectSeconds: 3, // 滚动作用时间,到期后暂停计时,再滚动继续计时;小于等于0不滚动也不会暂停计时
				rewardData: 5
			});
		}
	} else if (result.event == "onReward") {
		// 在此发放奖励,并设置奖励结果
		newsSdk.setRewardResult({
			newsUrl: result.newsUrl,
			success: true,
			rewardData: result.rewardData
		})
	} else if (result.event == "onReadingEnd") {
	}
})