PhoneGap Admob,外部链接......无法让任何一个工作
PhoneGap Admob, external links... Can't get either one to work
我知道这里有很多关于 PhoneGap 的答案。我已经完成了所有这些,但没有一个解决方案有效。尽管,从各方面来看,他们中的任何一个都应该。许多答案太老了,我怀疑它们是否仍然有效。
我的应用程序可以正常运行、编译和运行。除了我无法让广告正常工作。我首先尝试了 AdMob。广告从不显示。所以我说,"fine... I'll make my own instead." 如果点击广告会打开一个新的浏览器,那就太好了。我认为一个简单的 window.open() 命令就可以了。但不是。那不会发生。我需要使用 cordova 插件来完成这项工作。
我在 Adobe 网站上使用 PhoneGap-Build。
在我的 config.xml 中,我有:
<gap:plugin name="cordova-plugin-inappbrowser" spec="~3.0.0" source="npm" />
当我更新源代码时,我可以看到插件正在显示:
(来自 PhoneGap 页面)
插件源版本安装平台
cordova-plugin-inappbrowser npm ~3.0.0 3.0.0 android,ios,winphone
经过 30 次左右的不同变体尝试后,这是我上次尝试的 JS 代码:
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
window.open = cordova.InAppBrowser.open;
}
function navToMobile(where){
var ref = cordova.InAppBrowser.open(where, '_system', 'location=yes');
//These two lines are incorrect and causing errors. The first doesn't do anything. The second is only supposed to be called to show and existing window. So the first line in this function is the only one that is needed.
navigator.app.loadUrl(where, { openExternal:true });
ref.show();
}
"navToMobile(where)" 的函数调用为 'where' 发送 URL。
根据之前的回答,该函数中有 2 种不同的方法应该起作用。我把它们都放在了那里,希望其中一个能起作用...
运行时,没有任何反应。我在模拟器上安装了该应用程序,以便可以看到日志猫。这告诉我 "cordova is not available"。这告诉我库没有被编译到应用程序中。
据我所知,如果我在没有 "build PhoneGap" 的情况下执行此操作,我将有一个 cordova.js 库作为我项目的一部分。但我认为这就是 config.xml 中的参考是为了...
无论如何...我怀疑 AdMob 也会发生完全相同的事情。我按照说明设置了所有内容,我在 AdMob 中创建了一个带有 ID 的新横幅广告...但广告从未显示。
如果有人对如何使这些方法中的任何一种起作用有任何想法,那就太好了。
编辑:我正在编辑此答案以显示最终解决方案。
正如德克斯特在他的回答中提到的,必须引用 cordova.js 文件,没有它,none 的插件内容将起作用。如果他们碰巧在他们的文档中的任何地方提到这一点,那就太好了。他们从来没有提到引用是必要的,因为他们在编译时嵌入了它。您不需要将该 .js 作为项目的一部分。
随着工作的进行,我遇到了错误。我知道这可能是个问题,因为我有 3 行不同的代码,但不确定哪一个行得通。
我已经编辑了上面代码中的函数以显示正确的调用。
听起来您的 index.html
中没有 <script src="cordova.js"></script>
,此文件是 Cordova 在构建期间添加的,是插件运行所必需的。
我知道这里有很多关于 PhoneGap 的答案。我已经完成了所有这些,但没有一个解决方案有效。尽管,从各方面来看,他们中的任何一个都应该。许多答案太老了,我怀疑它们是否仍然有效。
我的应用程序可以正常运行、编译和运行。除了我无法让广告正常工作。我首先尝试了 AdMob。广告从不显示。所以我说,"fine... I'll make my own instead." 如果点击广告会打开一个新的浏览器,那就太好了。我认为一个简单的 window.open() 命令就可以了。但不是。那不会发生。我需要使用 cordova 插件来完成这项工作。
我在 Adobe 网站上使用 PhoneGap-Build。
在我的 config.xml 中,我有:
<gap:plugin name="cordova-plugin-inappbrowser" spec="~3.0.0" source="npm" />
当我更新源代码时,我可以看到插件正在显示:
(来自 PhoneGap 页面) 插件源版本安装平台 cordova-plugin-inappbrowser npm ~3.0.0 3.0.0 android,ios,winphone
经过 30 次左右的不同变体尝试后,这是我上次尝试的 JS 代码:
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
window.open = cordova.InAppBrowser.open;
}
function navToMobile(where){
var ref = cordova.InAppBrowser.open(where, '_system', 'location=yes');
//These two lines are incorrect and causing errors. The first doesn't do anything. The second is only supposed to be called to show and existing window. So the first line in this function is the only one that is needed.
navigator.app.loadUrl(where, { openExternal:true });
ref.show();
}
"navToMobile(where)" 的函数调用为 'where' 发送 URL。
根据之前的回答,该函数中有 2 种不同的方法应该起作用。我把它们都放在了那里,希望其中一个能起作用...
运行时,没有任何反应。我在模拟器上安装了该应用程序,以便可以看到日志猫。这告诉我 "cordova is not available"。这告诉我库没有被编译到应用程序中。
据我所知,如果我在没有 "build PhoneGap" 的情况下执行此操作,我将有一个 cordova.js 库作为我项目的一部分。但我认为这就是 config.xml 中的参考是为了...
无论如何...我怀疑 AdMob 也会发生完全相同的事情。我按照说明设置了所有内容,我在 AdMob 中创建了一个带有 ID 的新横幅广告...但广告从未显示。
如果有人对如何使这些方法中的任何一种起作用有任何想法,那就太好了。
编辑:我正在编辑此答案以显示最终解决方案。
正如德克斯特在他的回答中提到的,必须引用 cordova.js 文件,没有它,none 的插件内容将起作用。如果他们碰巧在他们的文档中的任何地方提到这一点,那就太好了。他们从来没有提到引用是必要的,因为他们在编译时嵌入了它。您不需要将该 .js 作为项目的一部分。
随着工作的进行,我遇到了错误。我知道这可能是个问题,因为我有 3 行不同的代码,但不确定哪一个行得通。
我已经编辑了上面代码中的函数以显示正确的调用。
听起来您的 index.html
中没有 <script src="cordova.js"></script>
,此文件是 Cordova 在构建期间添加的,是插件运行所必需的。