【问题标题】:AdMob is not defined on Meteor appAdMob 未在 Meteor 应用上定义
【发布时间】:2015-04-19 22:20:22
【问题描述】:

我有一个 Meteor(v1.0.3.1) 应用程序并安装了 AdMob Cordova 插件,如下所示:

meteor add cordova:com.google.cordova.admob@https://github.com/floatinghotpot/cordova-admob-pro/tarball/94a31660d1bb35337e3430e2608b7710ea4d882a

按照文档的建议使用以下代码:

if(Meteor.isCordova){

    admobid = {
      banner: 'ca-app-pub-xxxxxxxxxxxxxxxxxxx'
    };

    if(AdMob){
        AdMob.createBanner( {
          adId: admobid.banner, 
          position: AdMob.AD_POSITION.BOTTOM_CENTER, 
          autoShow: true 
        });
      }
}

然后在插入我的 Android 手机的情况下使用 meteor run android-device 启动应用程序。

堆栈跟踪中出现以下错误:

Uncaught ReferenceError: AdMob is not defined

我在窗口和其他地方寻找 AdMob 对象,但找不到。

【问题讨论】:

    标签: android cordova meteor admob


    【解决方案1】:

    我建议你试试这个其他插件:

    meteor add cordova:com.admob.google@https://github.com/appfeel/admob-google-cordova/tarball/f3851132148aae4c600563d4124cc875c8c5f73e
    

    然后在你的代码中:

    if(Meteor.isCordova){
        if(admob){
            admob.createBannerView({publisherId: "ca-app-pub-xxxxxxxxxxxxxxxxxxx"});
          }
    }
    

    【讨论】:

    • 我仍然收到 'Uncaught ReferenceError: admob is not defined' 。会是什么
    • 您是在浏览器中运行它吗?我认为插件只在编译的应用程序(apk's)中工作,而不是在浏览器或应用程序启动器中,如 phonegap 或 intel xdk ......
    【解决方案2】:

    我可以确认您正在使用的插件正在运行。但是您可能不应该使用 tarball。请改用当前版本 (2.7.4)。

    试试这个。这对我使用 iOS 模拟器很有用。

    1. 删除您使用meteor remove 安装的插件
    2. 使用版本号安装

      meteor add cordova:com.google.cordova.admob@2.7.4

    3. 运行模拟器(如果您没有 Xcode,请使用 Android 模拟器)

      meteor run ios

    那么 AdMob 变量应该可用。至少我试过的时候是这样。

    更新

    该插件也适用于 Android。

    `meteor run android`
    

    另外,请确保您的代码位于 Meteor.startup() 中,以确保 Cordova 插件可用。

    Meteor.startup(function () {
      if (Meteor.isCordova) {
        if (AdMob) {
          AdMob.createBanner( {
            adId: 'ca-app-pub-3080070244198226/2109901818',
            position: AdMob.AD_POSITION.BOTTOM_CENTER,
            isTesting: true,
            autoShow: true,
            success: function() {
              console.log("Received ad");
            },
            error: function() {
              console.log("No ad received");
            }
          });
        } else {
          console.log("No Admob");
        }
      } else {
        console.log("No Cordova ");
      }
    }
    

    【讨论】:

    • 同理。我现在正在使用 Android。
    • 我认为您需要向我们提供更多信息。该问题似乎与 Cordova 插件无关,而与您的设置有关。您使用的是什么操作系统,系统控制台说什么等。
    【解决方案3】:

    Meteor 进行了安全升级 v1.0.4。您需要将网站的正则表达式添加到您的移动配置文件中以获取 google sdk。否则,如果您不这样做,您将在 x-code 的日志中看到白名单错误。

    我用它来获取 sdk。 App.accessRule('*://googleads.g.doubleclick.net');

    来自流星的参考告诉你升级。 https://www.meteor.com/blog/2015/03/17/meteor-104-mongo-cordova-template-subscriptions

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-31
      • 1970-01-01
      • 1970-01-01
      • 2012-12-27
      • 1970-01-01
      • 2012-12-05
      • 2017-10-24
      • 1970-01-01
      相关资源
      最近更新 更多