nativescript-admob 插件错误
nativescript-admob plugin error
我将 nativescript-admob
插件添加到我的 NativeScript Angular 项目中,并在我注入组件的服务中包含以下代码:
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);
});
}
}
下面是我在组件中使用它的方式:
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 提供的 android 测试横幅 ID),我在控制台,看起来像一个错误:
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 横幅广告发挥作用?
这实际上是 admob 插件的一个奇怪错误。因此,当您第一次导航到应用中的某个页面时,会触发 loaded
事件,但广告永远不会出现。当你第二次导航到它时,广告确实出现了。为了解决这个问题,我还向 navigatedTo
事件添加了横幅初始化函数。
this.page.on("navigatedTo", () => {
this.admob.createBanner();
});
这解决了问题,因此横幅会在您第一次和之后每次导航到该页面时出现。
我将 nativescript-admob
插件添加到我的 NativeScript Angular 项目中,并在我注入组件的服务中包含以下代码:
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);
});
}
}
下面是我在组件中使用它的方式:
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 提供的 android 测试横幅 ID),我在控制台,看起来像一个错误:
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 横幅广告发挥作用?
这实际上是 admob 插件的一个奇怪错误。因此,当您第一次导航到应用中的某个页面时,会触发 loaded
事件,但广告永远不会出现。当你第二次导航到它时,广告确实出现了。为了解决这个问题,我还向 navigatedTo
事件添加了横幅初始化函数。
this.page.on("navigatedTo", () => {
this.admob.createBanner();
});
这解决了问题,因此横幅会在您第一次和之后每次导航到该页面时出现。