Итак, я какое-то время выбрасывал свое приложение 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