Почему промежуточная реклама admob не отображается на iOS?
Мое рекламное объявление AdMob не показывается при нажатии кнопки adText. Я хотел бы, чтобы промежуточное объявление показывалось, а при закрытии запускалась моя функция text(). Я хотел бы, чтобы то же самое происходило при нажатии моей кнопки adCall, но после того, как промежуточное объявление было отклонено, чтобы запустить мою функцию call().
enum RequestType{
case call
case text
}
var requestType: RequestType?
@IBAction func adText(_ sender: Any) {
requestType = .text
presentInterstitialAd()
text()
}
@IBAction func adCall(_ sender: Any) {
requestType = .call
presentInterstitialAd()
call()
}
func interstitialDidDismissScreen(_ ad: GADInterstitial) {
interstitialAd = reloadInterstitialAd()
}
func presentInterstitialAd() {
if self.interstitialAd.isReady {
self.interstitialAd.present(fromRootViewController: self)
}
}
func invokeRequest() {
guard let requestType = requestType else {
fatalError("NO request type specified!")
}
switch requestType {
case .call: invokeCall()
case .text: invokeText()
}
}
func invokeCall() {}
func invokeText() {}
func call() {
if let contactopt = contact {
if let url = NSURL(string: "tel://\(contactopt)") {
// UIApplication.shared.openURL(url as URL)
UIApplication.shared.open(url as URL, options: [:], completionHandler: nil)
}
}
}
func text(){
if canSendText() {
if let contactopt = contact{
let messageVC = MFMessageComposeViewController()
messageVC.recipients = [String(contactopt)]
messageVC.messageComposeDelegate = self;
self.present(messageVC, animated: false, completion: nil)}}
else {
let alertController = UIAlertController(title: "Cannot Send Text Message", message: "Your device is not able to send text messages.", preferredStyle: UIAlertControllerStyle.alert)
let DestructiveAction = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.destructive) {
(result : UIAlertAction) -> Void in
print("error")
}
let okAction = UIAlertAction(title: "OK", style: UIAlertActionStyle.default) {
(result : UIAlertAction) -> Void in
print("OK")
}
alertController.addAction(DestructiveAction)
alertController.addAction(okAction)
self.present(alertController, animated: true, completion: nil)
}
}
1 ответ
Решение
Как я правильно понимаю, вы просто хотите вызвать фактическое поведение кнопки после того, как объявление было представлено и отклонено. В этом случае просто сохраните тип запроса, представьте объявление, отклоните объявление, перезагрузите промежуточный запрос и вызовите запрос сохраненного типа запроса.
Сначала определите типы:
enum RequestType {
case call
case text
}
Во-вторых, обновите свой контроллер вида:
var requestType: RequestType?
@IBAction func adText(_ sender: Any) {
requestType = .text
presentInterstitialAd()
}
@IBAction func adCall(_ sender: Any) {
requestType = .call
presentInterstitialAd()
}
func presentInterstitialAd() {
if self.interstitialAd.isReady {
self.interstitialAd.present(fromRootViewController: self)
}
}
func interstitialDidDismissScreen(_ ad: GADInterstitial) {
interstitialAd = reloadInterstitialAd()
invokeRequest()
}
func invokeRequest() {
guard let requestType = requestType else {
fatalError("No request type specified!")
}
switch requestType {
case .call: call()
case .text: text()
}
}
func call() {
// your code
}
func text() {
// your code
}