1 回答
TA贡献1848条经验 获得超10个赞
我认为有更好的解决方案,但我是setTimeout在广告单元尚未加载时使用简单的函数完成的。它看起来像这样:
const showRewarded = async () => {
const rewarded = RewardedAd.createForAdRequest(UNIT_ID, {
requestNonPersonalizedAdsOnly: false
});
var loaded = false;
var gotReward = false;
const eventListener = rewarded.onAdEvent((type, error, reward) => {
if(type === RewardedAdEventType.LOADED) {
rewarded.show();
loaded = true;
}
else if(type === RewardedAdEventType.EARNED_REWARD) {
gotReward = true;
}
else if(error) {
console.warn(error);
}
});
rewarded.load();
while(!loaded) {
await new Promise((resolve, reject) => setTimeout(resolve, 1000));
}
return gotReward;
}
此函数gotReward仅在广告关闭后返回。如果用户观看了所有广告则为真,如果他已跳过则此值为假。
添加回答
举报
