2012-02-03 11:19
PhoneGap API 的扩充– 第三方插件 子浏览器 (ChildBrowser)
上一篇文章时关于如何编辑PhoneGap的classes文件去扩展,今天我们讨论如何使用第三方插件。今天我们使用的插件来自esse MacFayden (aka @purplecabbage on twitter).原始代码包你可以从 github下载:
如果你使用的是 0.9.6
你可以得到我的 “HelloPhoneGap” 项目代码包:
如果你使用的是PhoneGap 1.0
你可以得到我的“HelloPhoneGap1.0” 项目代码包:
什么是PhoneGap插件?
简单的说, 一个PhoneGap插件就是一个PhoneGap能够获得本地部分功能的扩展,而原始的项目包时没有提供的。
一个PhoneGap插件至少包括两个部分:
所以这里会出现诸如UIViewControllers, UI.xib files, 图片等其他文件 (取决于插件的复杂程度)。
安装一个第三方插件:
一旦你复制了你想使用的插件,你需要添加到你的项目。这里有很多途径来做可能放在很多不同地方。要保持他的见解而不是冗余的步骤,我们将需要的新的插件放到 ${PROJECT_DIR}/Plugins 目录.
你可以从如上的截图看到, ChildBrowser插件包括图片, 一个viewController,一个 .xib文件,像JavaScript 和 PhoneGapCommand一样运行. 这个控件只用了三个文件。为了使用js插件,这些文件要放在" www"目录下,并且在html文件中加载scrtpt文件。
我在加载过程中执行了如下的脚本文件:
使用插件相对容易些,在你把所有文件放到项目之后,你只需要在页面加载这些scrtpt脚本文件。
示例代码:
如果你使用的是 0.9.6
你可以得到我的 “HelloPhoneGap” 项目代码包:
如果你使用的是PhoneGap 1.0
你可以得到我的“HelloPhoneGap1.0” 项目代码包:
什么是PhoneGap插件?
简单的说, 一个PhoneGap插件就是一个PhoneGap能够获得本地部分功能的扩展,而原始的项目包时没有提供的。
一个PhoneGap插件至少包括两个部分:
- 获得本地功能的JavaScript钩子文件
- 运行本地语言文件和电话功能交互
所以这里会出现诸如UIViewControllers, UI.xib files, 图片等其他文件 (取决于插件的复杂程度)。
安装一个第三方插件:
一旦你复制了你想使用的插件,你需要添加到你的项目。这里有很多途径来做可能放在很多不同地方。要保持他的见解而不是冗余的步骤,我们将需要的新的插件放到 ${PROJECT_DIR}/Plugins 目录.
- 下载插件到你的电脑– 注意放的位置
- 打开你的XCode项目 (由PhoneGap模板而来)
- 你插件在项目中的目录(而不是PhonGapLib项目
- 左击你下载的插件文件. 确定“复制” 和“创建组引用” 复选框。
- 编译项目 — 您可能需要按照插件的类型添加libraries库
按照如下步骤:
- ChildBrowser – 用内置浏览器打开资源避免safari
- NativeControls – 插件使用本地控件,如一个TabBar和ActionSheet(我将在下文说明)。
你可以从如上的截图看到, ChildBrowser插件包括图片, 一个viewController,一个 .xib文件,像JavaScript 和 PhoneGapCommand一样运行. 这个控件只用了三个文件。为了使用js插件,这些文件要放在" www"目录下,并且在html文件中加载scrtpt文件。
我在加载过程中执行了如下的脚本文件:
- #!/bin/sh
- # PluginCopy.sh
- # HelloPhoneGap
- # Created by Hiedi Utley on 3/30/11.
- # Copyright 2011 Chariot Solutions, LLC. All rights reserved.
- cp -rf ${PROJECT_DIR}/Plugins/*/*.js ${PROJECT_DIR}/www
使用插件相对容易些,在你把所有文件放到项目之后,你只需要在页面加载这些scrtpt脚本文件。
示例代码:
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
- <html>
- <head>
- <!-- Change this if you want to allow scaling -->
- <meta name="viewport" content="width=default-width; user-scalable=no" />
- <meta http-equiv="Content-type" content="text/html; charset=utf-8">
- <link rel="stylesheet" href="HelloPhoneGap.css" type="text/css"/>
- <title>HelloPhoneGap</title>
- <script type="text/javascript" charset="utf-8" src="phonegap.0.9.4.min.js"></script>/* PhoneGap.js优于其他插件文件首先加载*/
- <script type="text/javascript" charset="utf-8" src="ChildBrowser.js"></script>
- <script type="text/javascript" charset="utf-8">
- var childBrowser;
- function onBodyLoad()
- {
- document.addEventListener("deviceready",onDeviceReady,false);
- }
- /* PhoneGap has been initialized and is ready to roll */
- function onDeviceReady()
- {
- phoneGapReady.innerHTML = "PhoneGap is Ready";
- childBrowser = ChildBrowser.install();
- }
- function openChildBrowser(url)
- {
- try {
- //both of these should work...
- //window.plugins.childBrowser.showWebPage(url);
- childBrowser.showWebPage(url);
- }
- catch (err)
- {
- alert(err);
- }
- }
- </script>
- </head>
- <body onload="onBodyLoad()">
- <button onclick="openChildBrowser('http://www.google.com');">Open Google</button>
- </body>
- </html>

转自:http://bbs.phonegapcn.com/forum.php?mod=viewthread&tid=33