为 Phonegap 构建创建自定义 AdMob 插件(适用于 iOS 和 Android)
Posted
技术标签:
【中文标题】为 Phonegap 构建创建自定义 AdMob 插件(适用于 iOS 和 Android)【英文标题】:Create a Custom AdMob Plugin for Phonegap Build (for iOS and Android) 【发布时间】:2013-01-28 09:58:04 【问题描述】:我的 Phonegap Build 应用程序中的所有内容都正常工作,包括 Analytics 和 FacebookConnect 插件。不过,现在我想添加 AdMob 广告。
Phonegap Build 没有为 AdMob 提供内置插件,但根据 Phonegap Build Plugins page,您现在可以添加自己的自定义插件(请参阅页面底部的贡献插件)。
PhoneGap 插件可以与 PhoneGap Build 兼容 使用 plugin.xml 文件...
Phonegap 构建插件页面引用 Child Browser plugins.xml on GitHub 作为如何设置自定义 plugin.xml 的示例。下面是 Child Browser plugin.xml 的内容。
我不确定我需要修改该文件的哪些方面以及将它们修改为什么。我想我已经为iOS 和Android 正确设置了Phonegap AdMob 插件的文件结构(请参阅下面的文件结构),但我不确定如何在plugin.xml 文件中正确引用这些文件。
<?xml version="1.0" encoding="UTF-8"?>
<plugin xmlns="http://www.phonegap.com/ns/plugins/1.0"
xmlns:android="http://schemas.android.com/apk/res/android"
id="com.phonegap.plugins.childbrowser"
version="3.0.4">
<name>Child Browser</name>
<asset src="www/childbrowser.js" target="childbrowser.js" />
<asset src="www/childbrowser" target="childbrowser" />
<!-- android -->
<platform name="android">
<config-file target="AndroidManifest.xml" parent="/manifest/application">
<activity android:name="com.phonegap.plugins.childBrowser.ChildBrowser"
android:label="@string/app_name">
<intent-filter>
</intent-filter>
</activity>
</config-file>
<!-- Cordova 1.5 - 1.9 -->
<config-file target="res/xml/plugins.xml" parent="/plugins">
<plugin name="ChildBrowser"
value="com.phonegap.plugins.childBrowser.ChildBrowser"/>
</config-file>
<!-- Cordova 2.0.0 -->
<config-file target="res/xml/config.xml" parent="/cordova/plugins">
<plugin name="ChildBrowser"
value="com.phonegap.plugins.childBrowser.ChildBrowser"/>
</config-file>
<source-file src="src/android/ChildBrowser.java"
target-dir="src/com/phonegap/plugins/childBrowser" />
</platform>
<!-- ios -->
<platform name="ios">
<plugins-plist key="ChildBrowser"
string="ChildBrowserCommand" />
<resource-file src="ChildBrowser.bundle" />
<resource-file src="ChildBrowserViewController.xib" />
<header-file src="ChildBrowserCommand.h" />
<header-file src="ChildBrowserViewController.h" />
<source-file src="ChildBrowserCommand.m" />
<source-file src="ChildBrowserViewController.m" />
</platform>
</plugin>
应用文件结构
/index.html
/config.xml
/adMob
/plugin.xml
/src
/iOS
/GADAdMobExtras.h (from AdMob iOS SDK)
/GADAdNetworkExtras.h (from AdMob iOS SDK)
/GADAdSize.h (from AdMob iOS SDK)
/GADBannerView.h (from AdMob iOS SDK)
/GADBannerViewDelegate.h (from AdMob iOS SDK)
/GADInterstitial.h (from AdMob iOS SDK)
/GADInterstitialDelegate.h (from AdMob iOS SDK)
/GADRequest.h (from AdMob iOS SDK)
/GADRequestError.h (from AdMob iOS SDK)
/libGoogleAdMobAds.a (from AdMob iOS SDK)
/AdMobPlugin.h (from Phonegap Plugin for iOS)
/AdMobPlugin.js (from Phonegap Plugin for iOS)
/AdMobPlugin.m (from Phonegap Plugin for iOS)
/android
/AdMobPlugin.java (from Phonegap Plugin for Android)
/AdMobPlugin.js (from Phonegap Plugin for Android)
/GoogleAdMobAdsSdk-6.2.1.jar (from AdMob Android SDK)
Phonegap Plugin for iOSAdMob iOS SDKPhonegap Plugin for AndroidAdMob Android SDK
【问题讨论】:
你有没有在 phonegap build 中使用过这个? @Dom 不,我还没弄清楚。 感谢您的回复。 PhoneGap Build 博客文章提到 v2.7 现在应该随时可用。在同一篇文章的结尾,他们简要提到将提供更多插件。我一直在祈祷,这将是其中之一。 build.phonegap.com/blog/ending-support-for-phonegap-1-9 @MarkRummel 有解决方案吗? 【参考方案1】:我做plugin
但它在“PhoneGap Build”中被拒绝,因为它包含 Google 二进制文件…… 今天,您没有在“PhoneGap Build”项目上使用 Admob 的解决方案。
【讨论】:
【参考方案2】:这是一个古老的悬而未决的问题,因为从今天开始这是不可能的。但是 Phonegap 已经宣布改变他们的规则:see here,所以现在可以使用外部插件了。要将 Admob 广告添加到您的 Phonegap Build 应用,请编辑您的 config.html
文件并放置以下代码:
<gap:plugin name="phonegap-admob" source="npm" />
我是插件的作者,你可以看到一个现场演示应用程序(仅适用于 Android)here
【讨论】:
谢谢,我有一个原生 iOS 框架,我正在寻找如何为我的框架创建插件以与 Phonegap 构建一起使用的指南,这个插件应该与本地phonegap项目?你知道一个很好的教程吗?谢谢【参考方案3】:This article 有您正在寻找的关于为您的插件设置 plugman 的内容。
【讨论】:
【参考方案4】:对于 admob:关于它们的阅读有点令人困惑,因为过去他们过去常常通过 javascript 方法为移动网站提供广告,但在谷歌收购该公司后,他们删除了这一点,admob 不再为移动网站提供服务对于移动网站,他们建议您使用 adsense。令人困惑的是,仍然有安装 admob JavaScript 的说明,但现在已经不存在了。 我看到了你的链接,我猜你在哪里尝试为 iOS 应用安装 admob。我是为 Android 应用程序做的,它是直截了当的,它是 easy,但问题是我尝试过它在底部显示的内容。
【讨论】:
【参考方案5】:PhoneGap Build 现在允许任何用户贡献一个插件,所有用户都可以使用该插件(在课程审核和测试之后)。 他们有一个新页面描述了流程并建议有抱负的贡献者查看 Facebook 插件的 repo。
所以也许您可以基于this documentation 创建一个不错的 Admob 插件。
【讨论】:
以上是关于为 Phonegap 构建创建自定义 AdMob 插件(适用于 iOS 和 Android)的主要内容,如果未能解决你的问题,请参考以下文章