[expo-ads-admob] [IOS [Android works]] - Вознаграждение добавить немедленно закрывается - PullRequest
0 голосов
/ 12 января 2020

Итак, я какое-то время выбрасывал свое приложение Expo go и теперь хотел бы использовать пакет expo-ads-admob для интеграции Admob. Я следовал инструкциям по установке и могу успешно показывать баннеры в приложении Android и IOS. Приложение Android также работало без проблем, используя приложение Reward. Однако приложение IOS немедленно закрывает приложение Rewarded.

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

Проблема заключается в том, что на IOS объявление загружено, его можно просмотреть в течение секунды, и я слышу звук при запуске, однако он мгновенно закрывается и приложение продолжает загружаться. Приложение Android ожидает, пока пользователи закроют приложение, и после закрытия запускает submitHandler.

Кто-нибудь знаком с этой проблемой и знает исправление? Ниже приведен код и пояснение, чтобы лучше понять его;

Пользователи нажимают кнопку загрузки и получают возможность оплатить или сделать это бесплатно. После выбора бесплатного запускается addUsingAdHandler. SetisAddMode закрывает модальное окно, после чего я получаю консольный журнал, запускается реклама и показывается видео.

const addUsingAdHandler = async () => {
    setIsAddMode(false)
    console.log('Rewared video is shown')
    await AdMobRewarded.showAdAsync();
}

При открытии страницы я добавляю eventListeners, как указано в инструкции. Прослушиватель rewardedVideoDidClose используется, чтобы в конечном итоге начать загрузку.

useEffect(() => {
    AdMobRewarded.setTestDeviceID("EMULATOR");
    AdMobRewarded.setAdUnitID('ca-app-pub-3940256099942544/5224354917');

    AdMobRewarded.addEventListener("rewardedVideoDidRewardUser", () =>
        console.log("Reward is binnen gekomen. ")
    );
    AdMobRewarded.requestAdAsync();
    AdMobRewarded.addEventListener("rewardedVideoDidLoad", () =>
        console.log("Video did load")
    );
    AdMobRewarded.addEventListener("rewardedVideoDidFailToLoad", () =>
        console.log("Failed to load")
    );
    AdMobRewarded.addEventListener("rewardedVideoDidOpen", () =>
        console.log("Video did open")
    );


    AdMobRewarded.addEventListener("rewardedVideoDidClose", () => {
        console.log("video did close")
        submitHandler()
    }
    );


    AdMobRewarded.addEventListener("rewardedVideoWillLeaveApplication", () =>
        console.log("Video did leave application")
    );
    AdMobRewarded.addEventListener("rewardedVideoDidStart", () =>
        console.log("Video did start")
    );
}, [])

Итак, при нажатии кнопки «загрузить бесплатно» объявление показывается на секунду, однако сразу же закрывается (журналы показывают это с использованием прослушивателей событий) и загрузка начинается, как и ожидалось. На моем эмуляторе Android объявление показывается до тех пор, пока я не нажму кнопку закрытия, как я ожидаю, что на моем эмуляторе IOS.

Кто-нибудь сталкивался с этим раньше и / или мог бы направить меня в правильном направлении исправить это?

React-Native версия; 0.59.10 Экспо Версия; 35.0.0 Expo-ads-admob версия: 8.0.0

...