来自51cto:http://mobile.51cto.com/android-309311.htm
前面一篇文章 《移动 APP 之跨平台解决方案》 介绍了一种跨平台的解决方案,即用开发web app的方式来编写mobile app。鉴于PhoneGap才刚刚新起,还有许多功能因为平台的差异性无法很好的解决,所以我们在实际的开发中,发现有很多功能还需要完善,一种比较好 的方式就是编写平台依赖的插件,进而扩展PhoneGap的功能。
本文介绍一下开发和使用插件的一个流程,以 VideoPlayer 为例。
- 环境搭建,下载 phonegap-android 的源码,下载地址 https://github.com/phonegap/phonegap-android
- 编写video.js,提供给web开发端的接口定义,定义了一个VideoPlayer类和play函数,参数为要播放的文件视频地址,代码如下:
- /**
- * Constructor
- */
- function VideoPlayer() {
- };
- /**
- * Starts the video player intent
- *
- * @param url The url to play
- */
- VideoPlayer.prototype.play = function(url) {
- PhoneGap.exec(null, null, "VideoPlayer", "playVideo", [url]);
- };
- /**
- * Load VideoPlayer
- */
- PhoneGap.addConstructor(function() {
- PhoneGap.addPlugin("videoPlayer", new VideoPlayer());
- });
- 编写 Android VideoPlayer 的具体实现代码,VideoPlayer/src/com/phonegap/plugins/video/VideoPlayer.java
- package com.phonegap.plugins.video;
- import org.json.JSONArray;
- import org.json.JSONException;
- import android.content.Intent;
- import android.net.Uri;
- import com.phonegap.api.Plugin;
- import com.phonegap.api.PluginResult;
- publicclass VideoPlayer extends Plugin {
- privatestaticfinal String YOU_TUBE = "youtube.com";
- @Override
- public PluginResult execute(String action, JSONArray args, String callbackId) {
- PluginResult.Status status = PluginResult.Status.OK;
- String result = "";
- try {
- if (action.equals("playVideo")) {
- playVideo(args.getString(0));
- }
- else {
- status = PluginResult.Status.INVALID_ACTION;
- }
- returnnew PluginResult(status, result);
- } catch (JSONException e) {
- returnnew PluginResult(PluginResult.Status.JSON_EXCEPTION);
- }
- }
- privatevoid playVideo(String url) {
- // Create URI
- Uri uri = Uri.parse(url);
- Intent intent = null;
- // Check to see if someone is trying to play a YouTube page.
- if (url.contains(YOU_TUBE)) {
- // If we don't do it this way you don't have the option for youtube
- intent = new Intent(Intent.ACTION_VIEW, uri);
- } else {
- // Display video player
- intent = new Intent(Intent.ACTION_VIEW);
- intent.setDataAndType(uri, "video/*");
- }
- this.ctx.startActivity(intent);
- }
- }
- 配置插件, res/xml/plugins.xml 添加如下代码
- <pluginname="VideoPlayer"value="com.phonegap.plugins.video.VideoPlayer"/>
- 编写代码进行调用,文件开头引入js代码框架,然后进行VideoPlayer类的play函数调用
- <scripttype="text/javascript"charset="utf-8"src="phonegap.js"></script>
- <scripttype="text/javascript"charset="utf-8"src="video.js"></script>
- //Sample use:
- /**
- * Display an intent to play the video.
- *
- * @param url The url to play
- */
- //play(url)
- window.plugins.videoPlayer.play("http://path.to.my/video.mp4");
- window.plugins.videoPlayer.play("file:///path/to/my/video.mp4");
- 到此为止,插件的开发和部署,以及调用就都ok了,是不是很简单啊!
最后向大家推荐一本书籍《PhoneGap Beginner’s Guide》,相信通过本书的学习,就知道了怎样利用PhoneGap来开发跨平台的mobile app了,同时也可以关注https://github.com/phonegap项目的最新进展情况和新特性,如果可以的话,贡献自己的力量来进行完善和扩充!
【编辑推荐】
相关推荐
本插件专注于PhoneGap在Android平台上的在线更新功能,旨在解决一个特定的问题:即在Android 7.0及以上版本中,通过下载安装APK更新时可能出现的应用闪退现象。 在Android系统中,特别是从7.0版开始,谷歌引入了更...
Android的Toast插件是PhoneGap生态中的一个重要组件,用于在Android设备上显示短暂的通知信息,类似于原生Android开发中的Toast功能。 首先,`ToastPlugin.java`是这个插件的核心Java代码,它负责与PhoneGap的...
在本教程中,我们将探讨如何使用PhoneGap调用Android插件来实现GPS实时定位。 一、PhoneGap与Android插件 PhoneGap的插件系统是连接Web层和原生层的关键。当在JavaScript中调用一个PhoneGap API时,实际上是在调用...
在"自定义plugin插件实现phonegap与Android交互"这个主题中,我们主要关注的是如何通过编写自定义插件来打通JavaScript和Android之间的通信壁垒。在PhoneGap中,Plugin是连接Web层和Native层的桥梁,它们是用Java...
这个"phonegap开发插件合集"是一个包含了多种PhoneGap插件的资源包,覆盖了Android和iOS等多个平台,为开发者提供更丰富的功能扩展。 首先,我们来看看"短信收发插件"。在移动应用中,发送和接收短信是一项常见的...
PhoneGap打开文档插件是移动应用开发中的一个重要组件,它允许开发者在PhoneGap应用程序中方便地查看和打开各种类型的文档。PhoneGap是一个基于HTML、CSS和JavaScript的框架,用于构建跨平台的原生移动应用。它利用...
在"Phonegap在安卓平台上的插件开发"这个主题中,我们关注的是如何在PhoneGap应用中创建自定义的插件,以便将前端HTML与Android的原生代码连接起来。具体来说,这个例子涉及到将一个字符串从前端传输到Android的原生...
在`config.xml`中添加`<feature>`标签,确保PhoneGap知道这个插件,并将`Notification.java`添加到Android平台的源代码目录。 总的来说,这个压缩包包含了一个完整的PhoneGap插件,用于在Android应用中调用`Toast`...
在这个“phoneGap实现android程序开发代码”中,我们将探讨如何使用PhoneGap进行Android应用开发。 首先,我们需要安装PhoneGap的开发环境。这包括安装Java Development Kit (JDK),Android SDK,以及集成开发环境...
PhoneGap是一种跨平台的移动应用开发框架,它允许开发者使用HTML、CSS和JavaScript来构建原生的...通过深入研究这个例子,你将能更好地理解PhoneGap插件开发的过程,并且能够自己动手创建新的插件来满足特定的需求。
- 在PhoneGap项目中创建一个Android插件,这个插件会包含Java和JavaScript两部分。Java部分用于处理与Android系统的交互,JavaScript部分则提供给Web端调用。 - Java代码中,你需要继承`CordovaPlugin`类,并重写`...
PhoneGap 2.9.0 版本虽然较旧,但仍然对理解基础的插件开发机制有着重要的意义。 **PhoneGap 插件开发** PhoneGap 插件是连接JavaScript世界和原生移动平台API的关键组件。它们允许开发者通过JavaScript调用设备的...
在移动应用开发领域,PhoneGap和Android是两种广泛使用的平台。PhoneGap是一种基于HTML5、CSS3和JavaScript的跨平台框架,它允许开发者使用Web技术创建原生移动应用。而Android则是Google主导的开源操作系统,提供了...
总的来说,PhoneGap Android Demo是一个实践教程,展示了如何在Android平台上利用PhoneGap开发混合型应用。通过学习和研究这个示例,开发者可以快速掌握PhoneGap的基本用法,进一步利用Web技术开发出具有原生性能的...
PhoneGap是一款跨平台的移动应用开发框架,它允许开发者使用HTML、CSS和JavaScript来构建原生的移动应用程序。在这个“phonegap android 录音照相录像 demo”项目中,我们将会探讨如何使用PhoneGap在Android平台上...
总的来说,配置PhoneGap+Android开发环境需要安装JDK、Android SDK、可能的Eclipse/Android Studio,以及PhoneGap本身。确保所有组件都更新到最新版本,以获得最佳的开发体验。此外,熟悉PhoneGap API和Android SDK...
4. **插件开发**:如果你需要自定义特定功能,你可以开发自己的PhoneGap插件。这涉及到编写JavaScript接口(通常位于`www`目录下的JS文件),以及对应的Android Java类,该类继承自CordovaPlugin,并重写`execute()`...
### 基于PhoneGap的Android应用开发 #### 一、引言 随着移动互联网的飞速发展,跨平台移动应用开发技术越来越受到开发者们的青睐。PhoneGap作为一款开源框架,能够利用HTML5、CSS3与JavaScript等Web技术来开发跨...
1. **Android 插件**:Android平台的插件通常用Java编写,它们为PhoneGap应用提供了与Android SDK的接口。这些插件可以让你实现诸如调用系统相机拍照、获取用户位置信息、使用蓝牙进行数据传输等功能。 2. **iOS ...
PhoneGap的核心理念是通过Web技术实现与移动设备硬件的交互,让开发者能够利用熟悉的Web开发技能开发出能在iOS、Android、Windows Phone等多平台运行的应用。 在"android之PhoneGap入门实例"中,我们首先需要了解...