Подождите, пока AdMob бесплатно вознаградить видео событие внутри функции (Ionic / Typescript) - PullRequest
0 голосов
/ 10 июня 2018

У меня есть функция, которая проверяет, видел ли пользователь или должен видеть видео с наградами, чтобы иметь возможность использовать функцию в моем ионном приложении:

let canUseThisFunction = await this.someService.canUseFunction();

if(canUseThisFunction){
     console.log("can use");
} else {
    console.log("can NOT use");
} 

, а функция проверки выглядит примерно так:

canUseFunction(){
    let canUse = await this.checkInBackend.checkIfUserHasReward();

    if(!canUse){
        await this.adService.showRewardVideo();   
     } else {
         return false;
     }
}

Проблема, с которой я столкнулся, заключается в том, что после checkIfUserHasReward() звонки admob.rewardVideo.show() он разрешает только "OK", пока идет видео с вознаграждением.

..
this.admob.rewardVideo.config(rewardVideoConfig);

        return this.admob.rewardVideo.prepare().then((prepareReward) => {
            console.log("prepareReward", prepareReward);
            return this.admob.rewardVideo.show();
        }).then(rewardShowed => {
            console.log("rewardShowed", rewardShowed);
            return rewardShowed;
        }).catch(e => console.error(e));

Я могу получить событие вознагражденияиспользуя

(document as any).addEventListener("admob.rewardvideo.events.REWARD")

, но он разрешается за пределами моего canUseFunction().Есть ли способ поймать это eventListener внутри другой функции?

1 Ответ

0 голосов
/ 10 июня 2018

Вы должны использовать конструктор new Promise, чтобы создать обещание, которое вы можете выполнить по желанию:

return new Promise(resolve => document.addEventListener("...", resolve);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...