本文档描述了 DCloud 5+app 和 wap2app 开发者如何集成 News 原生插件(后面简称为插件),通过集成插件引入完备的信息流服务。
如果需要在信息流和资讯正文中展示广告,则需集成 AD 插件。本文档默认需要展示广告,展示广告可以创造收益。
AppId:应用 id,18位 hex 字符串。【注意】调试时请使用测试 appId:ba0063bfbc1a5ad878;外发版本请替换成正式 appId,否则不会产生收益。
UserId:用户 id,接入方定义的用户唯一标识,传入时可以哈希脱敏,主要用于排查问题。
DCloud 5+app 和 wap2app 接入5+原生插件扩展原生能力,不支持云端打包,仅支持本地离线打包。(请参考 DCloud 官方文档 https://nativesupport.dcloud.net.cn/AppDocs/README)
插件集成步骤如下:
newsSdk.js:
document.addEventListener("plusready", function () {
plus.newsSdk = {
setUserId: function (userId) {
return plus.bridge.execSync("NewsSdk", "setUserId", [userId])
},
showNews: function (params) {
return plus.bridge.execSync("NewsSdk", "showNews", [params.margins, params.channel])
},
hideNews: function () {
return plus.bridge.execSync("NewsSdk", "hideNews", [])
},
startNews: function (params) {
return plus.bridge.execSync("NewsSdk", "startNews", [params.title, params.channel])
},
configReadingCountdown: function (params, callback) {
callbackId = plus.bridge.callbackId(callback, null)
return plus.bridge.execSync("NewsSdk", "configReadingCountdown", [callbackId, params.color, params.bgColor, params.imageUrl, params.layout, params.margins])
},
startCountdown: function (params) {
return plus.bridge.execSync("NewsSdk", "startCountdown", [params.newsUrl, params.countdownSeconds, params.scrollEffectSeconds, params.rewardData])
},
setRewardResult: function (params) {
return plus.bridge.execSync("NewsSdk", "setRewardResult", [params.newsUrl, params.success, params.rewardData])
},
}
}, true)
初始化已在原生代码中完成,请参考插件集成。
登录时请设置 userId:
plus.newsSdk.setUserId("uid")
退出登录请重置 userId:
plus.newsSdk.setUserId(null)
显示资讯信息流代码如下:
plus.newsSdk.showNews({
// channel: "科技", // 单频道
margins: [0, 200, 0, 0] // [left, top, right, bottom]
})
隐藏资讯信息流代码如下:
plus.newsSdk.hideNews()
跳转新打开的资讯信息流页面代码如下:
plus.newsSdk.startNews({
// channel: "科技", // 单频道
title: "资讯"
})
阅读资讯时可以显示倒计时,倒计时结束后给用户发放奖励。
配置倒计时示例代码如下:
document.addEventListener("plusready", function() {
plus.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]
}, function(result) {
console.log(JSON.stringify(result))
if (result.event == "onReadingStart") {
// 请按照产品需求,根据 newsUrl、newsType 判断是否启动倒计时,不给奖励可以不调用
if (1 /* ARTICLE */ == result.newsType || 2 /* VIDEO */ == result.newsType) {
plus.newsSdk.startCountdown({
newsUrl: result.newsUrl,
countdownSeconds: 10,
scrollEffectSeconds: 3, // 滚动作用时间,到期后暂停计时,再滚动继续计时;小于等于0不滚动也不会暂停计时
rewardData: 5
});
}
} else if (result.event == "onReward") {
// 在此发放奖励,并设置奖励结果
plus.newsSdk.setRewardResult({
newsUrl: result.newsUrl,
success: true,
rewardData: result.rewardData
})
} else if (result.event == "onReadingEnd") {
}
})
})