【发布时间】:2020-08-09 09:44:07
【问题描述】:
我在我的 React Native 应用程序中使用 Firebase AdMob,当用户点击特殊按钮时应该显示一个奖励广告单元。此按钮组件和调用广告横幅的功能在单独的文件中实现。所以,我的函数需要返回一个值,显示用户是否观看了完整的广告并获得了奖励。但我不知道在rewarded.onAdEvent 事件以type === RewardedAdEventType.EARNED_REWARD 结束后如何返回值。有一个调用广告和按钮组件的函数示例:
Ads.js 片段
const showRewarded = () => {
const rewarded = RewardedAd.createForAdRequest(UNIT_ID, {
requestNonPersonalizedAdsOnly: false,
});
const eventListener = rewarded.onAdEvent((type, error, reward) => {
if(type === RewardedAdEventType.LOADED) {
rewarded.show();
}
if(type === RewardedAdEventType.EARNED_REWARD) {
return reward;
}
// The reward should be null if user skiped the ad
return null;
});
rewarded.load();
// Wait for event completion
}
Button.js
import React from 'react';
import {
View,
Text,
TouchableOpacity
} from 'react-native';;
import { Ads } from '../components';
class MyButton extends React.Component {
constructor(props) {
super(props);
}
showAd() {
// Wait while user has not been get a reward (or skiped the ad)
const reward = Ads.showRewarded();
console.log(`The reward is ${reward}`);
}
render() {
return (
<View>
<TouchableOpacity onPress={() => this.showAd()}>
<Text>Show Ad to get a reward</Text>
</TouchableOpacity>
</View>
)
}
}
export default MyButton;
【问题讨论】:
标签: javascript firebase react-native admob