PhoneGap Admob,外部链接...无法使任何一个正常工作

时间:2019-03-10 13:18:01

标签: android phonegap-plugins phonegap-build

我知道关于PhoneGap的答案很多。我经历了所有这些问题,但没有一个解决方案可行。即使从所有方面来看,其中任何一个都应该。许多答案太旧了,我怀疑它们是否仍然有效。

我的应用程序可以运行,编译,运行良好。除了我无法使广告正常工作。我首先尝试了AdMob。广告永远不会显示。所以我说:“好吧,我会自己做。”如果点击广告导致打开新的浏览器,那就太好了。我认为一个简单的window.open()命令会起作用。但不是。那不会发生。我需要使用cordova插件才能使其正常工作。

我正在Adobe网站上使用PhoneGap-Build。

在我的config.xml中,我有:

<gap:plugin name="cordova-plugin-inappbrowser" spec="~3.0.0" source="npm" />

当我更新源代码时,我可以看到该插件正在显示:

(来自“电话间隙”页面) 插件源版本安装平台 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不可用”。这对我说,该库没有被编译到应用程序中。

根据我的收集,如果我在没有“ build PhoneGap”的情况下进行此操作,那么我的项目中将包含cordova.js库。但是我认为这就是config.xml中的引用用于...

无论如何...我怀疑AdMob确实发生了同样的事情。我按照说明进行了所有设置,然后在AdMob中创建了一个ID为ID的新横幅广告。广告从不显示。

如果有人对如何使这些方法中的任何一种有任何想法,那就太好了。

编辑:我正在编辑此答案以显示最终的解决方案。

正如Dexter在他的回答中提到的那样,必须对cordova.js文件进行引用,否则,没有任何插件可用。如果他们碰巧在文档中的任何地方提到了这一点,那就太好了。他们从来没有提到引用是必要的,因为它们是在编译时嵌入的。您不需要将该.js作为项目的一部分。

在这种情况下,我遇到了错误。我知道这可能是一个问题,因为我有3行不同的代码,而且不确定哪行有效。

我已经在上面的代码中编辑了该函数以显示正确的调用。

1 个答案:

答案 0 :(得分:4)

听起来<script src="cordova.js"></script>中没有index.html,此文件是Cordova在构建期间添加的,并且是插件运行所必需的。