Google AdMob 不适用于 iPhone 7 和 7 Plus 等大屏幕设备的 Xamarin Form iOS
Posted
技术标签:
【中文标题】Google AdMob 不适用于 iPhone 7 和 7 Plus 等大屏幕设备的 Xamarin Form iOS【英文标题】:Google AdMob is not working in Xamarin Form iOS for larger screen devices like iPhone 7 and 7 Plus 【发布时间】:2017-06-01 13:51:45 【问题描述】:我正在使用 Xamarin Forms 平台开发 ios 应用程序。我正在使用 Google AdMob 并按照此 URL http://motzcod.es/post/154696375922/xamarinforms-google-admob-ads-in-ios 实施它
它在 iOS 版本为 10.2 的所有设备和模拟器上都能正常运行
它也适用于 iOS 10.3 版,但仅适用于 iPhone 5s 和 5c 等少数设备,但不适用于 iPhone 6、6s、6s Plus、7、7 Plus 的设备和模拟器
进一步调试会引发以下错误,“Error Domain=com.google.ads Code=13”Request Error: Received invalid response.” UserInfo=NSLocalizedDescription=Request Error: Received invalid response., NSLocalizedFailureReason=Request Error: Received无效响应。"
我搜索了这个错误并应用了修复,但效果不佳。
如果有人可以提供帮助,我将不胜感激。谢谢
【问题讨论】:
我可能弄错了,但我相信现在更高版本的 iOS 要求 URL 必须是“https”而不是“http” 您好,为了让它运行,必须添加一个密钥 NSAppTransportSecurity,我在第一次运行项目时已经这样做了。 有人可以帮忙吗?我正在处理同样的问题。 【参考方案1】:仅供参考,我关注了这个博客http://motzcod.es/post/154696375922/xamarinforms-google-admob-ads-in-ios
iOS的自定义渲染器中这样使用BannerView
adView = new BannerView(size: AdSizeCons.SmartBannerPortrait,
origin: new CGPoint(0, UIScreen.MainScreen.Bounds.Size.Height - AdSizeCons.Banner.Size.Height))
AdUnitID = bannerId,
RootViewController = GetVisibleViewController()
;
不要使用参数化构造函数创建它的对象,而是像这样创建它
adView = new BannerView()
AdUnitID = bannerId,
RootViewController = GetVisibleViewController()
;
上述实施解决了所有 iOS 版本和设备中的问题。
【讨论】:
【参考方案2】:您可能想尝试App Transport Security 并将以下行添加到Info.plist
。
<key>NSAppTransportSecurity</key><dict>
<key>NSAllowsArbitraryLoads</key>
<true/></dict>
这可能会解决您的问题。
【讨论】:
您好,感谢您的回复。我在第一次运行项目时已经添加了这些键。以上是关于Google AdMob 不适用于 iPhone 7 和 7 Plus 等大屏幕设备的 Xamarin Form iOS的主要内容,如果未能解决你的问题,请参考以下文章
为啥 Google Cloud Messaging 通知不适用于 iPhone 生产环境?
Google Charts 散点图适用于 Chrome Macbook,但不适用于 Chrome iPhone
AdWhirl (AdMob, iAd) 广告未在已发布的 iPhone 应用程序中显示