第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

是否在 React Native 中觀看了獎勵廣告

是否在 React Native 中觀看了獎勵廣告

阿晨1998 2022-12-29 10:26:58
我在我的 React Native 應用程序中使用 Firebase AdMob,當用戶點擊特殊按鈕時,應該會顯示一個獎勵廣告單元。這個按鈕組件和調用廣告橫幅的功能是在單獨的文件中實現(xiàn)的。因此,我的函數(shù)需要返回一個值,以顯示用戶是否已觀看完整廣告并獲得獎勵。但是我不知道如何在rewarded.onAdEvent事件以 . 結束后返回值type === RewardedAdEventType.EARNED_REWARD。我的函數(shù)有一個調用廣告和我的按鈕組件的示例: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  }按鈕.jsimport 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;
查看完整描述

1 回答

?
慕桂英546537

TA貢獻1848條經驗 獲得超10個贊

我認為有更好的解決方案,但我是setTimeout在廣告單元尚未加載時使用簡單的函數(shù)完成的。它看起來像這樣:


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;

  }

此函數(shù)gotReward僅在廣告關閉后返回。如果用戶觀看了所有廣告則為真,如果他已跳過則此值為假。


查看完整回答
反對 回復 2022-12-29
  • 1 回答
  • 0 關注
  • 104 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號