首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >nativescript-admob插件错误

nativescript-admob插件错误
EN

Stack Overflow用户
提问于 2018-07-22 05:29:17
回答 1查看 415关注 0票数 0

我在我的NativeScript Angular项目中添加了nativescript-admob插件,并在我注入到组件中的服务中包含了以下代码:

代码语言:javascript
复制
import { Injectable } from "@angular/core";
import * as Admob from "nativescript-admob";

@Injectable()
export class AdmobService {

  private androidBannerId = "ca-app-pub-3940256099942544/6300978111";
  private iosBannerId = "";

  public createBanner() {
    Admob.createBanner({
      testing: false,
      size: Admob.AD_SIZE.SMART_BANNER,
      // iosBannerId: this.iosBannerId,
      androidBannerId: this.androidBannerId,
      // iosTestDeviceIds: ["yourTestDeviceUDIDs"],
      margins: {
        bottom: 500
      }
    }).then(function() {
      console.log("admob createBanner done test");
    }, function(error) {
      console.log("admob createBanner error: " + error);
    });
  }

  public hideBanner() {
    Admob.hideBanner().then(function() {
      console.log("admob hideBanner done");
    }, function(error) {
      console.log("admob hideBanner error: " + error);
    });
  }
}

下面是我如何在组件中使用它:

代码语言:javascript
复制
import { Component } from "@angular/core";
import { Page } from "tns-core-modules/ui/page";
import { AdmobService } from "~/service/admob.service";

@Component({
  selector: "Start",
  moduleId: module.id,
  templateUrl: "./start.component.html",
  styleUrls: ["./start.component.scss"]
})
export class StartComponent {

  constructor(private page: Page, private admob: AdmobService) {
    this.page.on("loaded", () => {
      this.admob.createBanner();
    });
  }

}

当我在页面加载后启动AdMob横幅时,没有广告横幅显示出来(我正在使用AdMob提供的安卓测试横幅ID ),并且我在控制台中得到以下输出,这看起来像是一个错误:

代码语言:javascript
复制
chromium: [INFO:library_loader_hooks.cc(36)] Chromium logging enabled: level = 0, default verbosity = 0
07-21 14:17:56.082 22107 22107 I cr_BrowserStartup: Initializing chromium process, singleProcess=false
07-21 14:17:56.174 22107 22107 I zygote  :   at void com.android.webview.chromium.WebViewChromium.init(java.util.Map, boolean) (PG:53)
07-21 14:17:56.175 22107 22107 I zygote  :   at void com.android.webview.chromium.WebViewChromium.init(java.util.Map, boolean) (PG:53)
07-21 14:17:56.176 22107 22107 I zygote  :   at void com.android.webview.chromium.WebViewChromium.init(java.util.Map, boolean) (PG:53)
07-21 14:17:56.176 22107 22107 I zygote  :   at void com.android.webview.chromium.WebViewChromium.init(java.util.Map, boolean) (PG:53)
07-21 14:17:56.177 22107 22107 I zygote  :   at void com.android.webview.chromium.WebViewChromium.init(java.util.Map, boolean) (PG:53)
07-21 14:17:56.178 22107 22107 I zygote  :   at void com.android.webview.chromium.WebViewChromium.init(java.util.Map, boolean) (PG:53)

要让AdMob横幅正常工作,我需要做些什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-23 22:13:52

这实际上是admob插件的一个奇怪的bug。因此,当您第一次导航到应用程序中的页面时,loaded事件将被触发,但广告从未出现。当你第二次导航到它的时候,广告就会出现。为了解决这个问题,我还向navigatedTo事件添加了横幅初始化函数。

代码语言:javascript
复制
this.page.on("navigatedTo", () => {
  this.admob.createBanner();
});

这修复了问题,使横幅显示第一次和每次您导航到页面之后。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51460273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档