【问题标题】:Using PhoneGap Plugin: Child Browser使用 PhoneGap 插件:子浏览器
【发布时间】:2012-05-15 15:32:54
【问题描述】:

我正在尝试使用 Phonegap 插件,但遇到了问题。这是我第一次使用 Phonegap 的插件。

我使用的插件是ChildBrowser for Android。

我已经在标题中链接了 Javascript 文件。

<script src="cordova-1.7.0.js" type="text/javascript"></script>
<script src="childbrowser.js" type="text/javascript"></script>

还遵循了Github page 中列出的步骤 2、3 和 4。

我尝试在链接中使用 ChildBrowser 插件:

<a href="#" onClick="window.plugins.childBrowser.openExternal("http://www.google.com");">Test</a>

当链接被点击时,什么也没有发生。

我有什么遗漏吗?我是否必须在标头中添加一些代码来初始化子浏览器插件?

Application Zip File.

Logcat 返回

D/CordovaLog(  885): Error: Status=2 Message=Class not found
D/CordovaLog(  885): file:///android_asset/www/cordova-1.7.0.js: Line 958 : Error: Status=2 Message=Class not found
I/Web Console(  885): Error: Status=2 Message=Class not found at file:///android_asset/www/cordova-1.7.0.js:958

*编辑: 根据我对网络的研究,当插件没有从 plugins.XML 文件中正确引用时,我得到的错误最常触发。我已经仔细检查并确保它是正确的。

我想知道 src 文件夹位置是否不正确。 我的项目根目录中有 src 文件夹,其中还包含我的 index.html、css 和 javascript。我注意到一些构建 Phonegap 应用程序的人有一个名为 www 的文件夹,其中包含 index.html,而不是将其包含在项目的根目录中。*

【问题讨论】:

  • 你在使用eclipse吗?你能看到 logcat 有什么问题吗?
  • 已导出 Logcat 并添加到问题末尾。我不断收到以下错误“错误:Status=2 Message=Class not found”

标签: android cordova plugins phonegap-plugins childbrowser


【解决方案1】:

在 PhoneGap 2.0 版中,您必须将以下行添加到 res/xml/config.xml 而不是 res/xml/plugins.xml:

<plugin name="ChildBrowser" value="com.phonegap.plugins.childBrowser.ChildBrowser"/>

不确定这是否适用于 PhoneGap 1.7 版。

【讨论】:

  • 这样做了,但 window.plugins.childBrowser 仍然未定义。
【解决方案2】:

看起来 onClick 属性的值格式不正确,您不能将“”用于另一个 '"' 内的字符串,即它应该如下所示:

<a href="#" onClick="window.plugins.childBrowser.openExternal('http://www.google.com');">Test</a>

【讨论】:

  • 感谢您指出这一点,我离让它工作更近了一步,但它仍然无法适应更改。
【解决方案3】:

不知道你是否解决了问题。 我有同样的问题,经过一番研究,我发现我必须 在AndroidManifest.xml 文件中添加这些行:

<activity android:name="com.phonegap.plugins.childBrowser.ChildBrowser" android:label="@string/app_name">
   <intent-filter>
   </intent-filter>
</activity>

虽然自述文件中没有提到这一点...

【讨论】:

    【解决方案4】:

    您似乎使用的是旧版本的 ChildBrowser。您应该从 github 获取最新的 ChildBrowser 代码,因为它使用 cordova 更新了对 PhoneGap 的引用。

    除此之外,当您单击链接时,您在“adb logcat”中看到了什么?

    【讨论】:

    • 我以为我下载了最新版本。你能把我链接到最新版本吗?
    • 我在 logcat 中不断收到“错误:状态 = 2 消息 = 未找到类”。我在我的问题中添加了更多细节。
    • 你在使用PhoneGap构建吗?
    • 在 DreamWeaver CS6 中使用 PhoneGap 面板
    • CJohns 的评论(拒绝为编辑):Phonegap/Cordova 2.0/2.1 需要 ChildBrowser 2.0.0 插件,并且不适用于 ChildBrowser 1.8.1! github.com/phonegap/phonegap-plugins/tree/master/Android/…
    【解决方案5】:

    我认为你的文件夹结构是错误的。您使用的是哪个版本的 Phonegap?结构应该是:

    Main Folder
      - assets
        - www
         - index.html
         - childbrowser.js
         - etc
        - libs
        - res
        - src
          - com
            - phonegap
              - plugin(s)
                - childbrowser
    

    【讨论】:

    • 忽略最后一条评论。按照您的建议进行重建,当我运行 build 时,会在主文件夹中创建一个 index.html 文件,上面写着“PhoneGap 正在工作”。
    • 我已将由您的解决方案引起的新问题重新发布为另一个问题。 stackoverflow.com/questions/10740555/…
    【解决方案6】:

    在子 browser.js 文件中,在函数 childbrowser() 上方添加以下代码

    (函数() {

    var cordovaRef = window.PhoneGap ||窗口.Cordova || window.cordova; 最后关闭函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-15
      • 2012-01-29
      • 2011-08-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多