`

PhoneGap的Android端插件开发

 
阅读更多

来自51cto:http://mobile.51cto.com/android-309311.htm

 

前面一篇文章 《移动 APP 之跨平台解决方案》 介绍了一种跨平台的解决方案,即用开发web app的方式来编写mobile app。鉴于PhoneGap才刚刚新起,还有许多功能因为平台的差异性无法很好的解决,所以我们在实际的开发中,发现有很多功能还需要完善,一种比较好 的方式就是编写平台依赖的插件,进而扩展PhoneGap的功能。

本文介绍一下开发和使用插件的一个流程,以 VideoPlayer 为例。

  1. 环境搭建,下载 phonegap-android 的源码,下载地址 https://github.com/phonegap/phonegap-android
  2. 编写video.js,提供给web开发端的接口定义,定义了一个VideoPlayer类和play函数,参数为要播放的文件视频地址,代码如下:
    1. /**
    2. * Constructor
    3. */
    4. function VideoPlayer() {
    5. };
    6. /**
    7. * Starts the video player intent
    8. *
    9. * @param url The url to play
    10. */
    11. VideoPlayer.prototype.play = function(url) {
    12. PhoneGap.exec(null, null, "VideoPlayer", "playVideo", [url]);
    13. };
    14. /**
    15. * Load VideoPlayer
    16. */
    17. PhoneGap.addConstructor(function() {
    18. PhoneGap.addPlugin("videoPlayer", new VideoPlayer());
    19. });
  3. 编写 Android VideoPlayer 的具体实现代码,VideoPlayer/src/com/phonegap/plugins/video/VideoPlayer.java
    1. package com.phonegap.plugins.video;
    2. import org.json.JSONArray;
    3. import org.json.JSONException;
    4. import android.content.Intent;
    5. import android.net.Uri;
    6. import com.phonegap.api.Plugin;
    7. import com.phonegap.api.PluginResult;
    8. publicclass VideoPlayer extends Plugin {
    9. privatestaticfinal String YOU_TUBE = "youtube.com";
    10. @Override
    11. public PluginResult execute(String action, JSONArray args, String callbackId) {
    12. PluginResult.Status status = PluginResult.Status.OK;
    13. String result = "";
    14. try {
    15. if (action.equals("playVideo")) {
    16. playVideo(args.getString(0));
    17. }
    18. else {
    19. status = PluginResult.Status.INVALID_ACTION;
    20. }
    21. returnnew PluginResult(status, result);
    22. } catch (JSONException e) {
    23. returnnew PluginResult(PluginResult.Status.JSON_EXCEPTION);
    24. }
    25. }
    26. privatevoid playVideo(String url) {
    27. // Create URI
    28. Uri uri = Uri.parse(url);
    29. Intent intent = null;
    30. // Check to see if someone is trying to play a YouTube page.
    31. if (url.contains(YOU_TUBE)) {
    32. // If we don't do it this way you don't have the option for youtube
    33. intent = new Intent(Intent.ACTION_VIEW, uri);
    34. } else {
    35. // Display video player
    36. intent = new Intent(Intent.ACTION_VIEW);
    37. intent.setDataAndType(uri, "video/*");
    38. }
    39. this.ctx.startActivity(intent);
    40. }
    41. }
  4. 配置插件, res/xml/plugins.xml 添加如下代码
    1. <pluginname="VideoPlayer"value="com.phonegap.plugins.video.VideoPlayer"/>
  5. 编写代码进行调用,文件开头引入js代码框架,然后进行VideoPlayer类的play函数调用
    1. <scripttype="text/javascript"charset="utf-8"src="phonegap.js"></script>
    2. <scripttype="text/javascript"charset="utf-8"src="video.js"></script>
    3. //Sample use:
    4. /**
    5. * Display an intent to play the video.
    6. *
    7. * @param url The url to play
    8. */
    9. //play(url)
    10. window.plugins.videoPlayer.play("http://path.to.my/video.mp4");
    11. window.plugins.videoPlayer.play("file:///path/to/my/video.mp4");
  6. 到此为止,插件的开发和部署,以及调用就都ok了,是不是很简单啊!

最后向大家推荐一本书籍《PhoneGap Beginner’s Guide》,相信通过本书的学习,就知道了怎样利用PhoneGap来开发跨平台的mobile app了,同时也可以关注https://github.com/phonegap项目的最新进展情况和新特性,如果可以的话,贡献自己的力量来进行完善和扩充!

【编辑推荐】

分享到:
评论

相关推荐

    phonegap在线更新插件(android)

    本插件专注于PhoneGap在Android平台上的在线更新功能,旨在解决一个特定的问题:即在Android 7.0及以上版本中,通过下载安装APK更新时可能出现的应用闪退现象。 在Android系统中,特别是从7.0版开始,谷歌引入了更...

    PhoneGap android的Toast插件

    Android的Toast插件是PhoneGap生态中的一个重要组件,用于在Android设备上显示短暂的通知信息,类似于原生Android开发中的Toast功能。 首先,`ToastPlugin.java`是这个插件的核心Java代码,它负责与PhoneGap的...

    phonegap调用android插件实现GPS定位

    在本教程中,我们将探讨如何使用PhoneGap调用Android插件来实现GPS实时定位。 一、PhoneGap与Android插件 PhoneGap的插件系统是连接Web层和原生层的关键。当在JavaScript中调用一个PhoneGap API时,实际上是在调用...

    自定义plugin插件实现phonegap与Android交互

    在"自定义plugin插件实现phonegap与Android交互"这个主题中,我们主要关注的是如何通过编写自定义插件来打通JavaScript和Android之间的通信壁垒。在PhoneGap中,Plugin是连接Web层和Native层的桥梁,它们是用Java...

    phonegap开发插件合集

    这个"phonegap开发插件合集"是一个包含了多种PhoneGap插件的资源包,覆盖了Android和iOS等多个平台,为开发者提供更丰富的功能扩展。 首先,我们来看看"短信收发插件"。在移动应用中,发送和接收短信是一项常见的...

    phonegap打开文档插件

    PhoneGap打开文档插件是移动应用开发中的一个重要组件,它允许开发者在PhoneGap应用程序中方便地查看和打开各种类型的文档。PhoneGap是一个基于HTML、CSS和JavaScript的框架,用于构建跨平台的原生移动应用。它利用...

    Phonegap在安卓平台上的插件开发

    在"Phonegap在安卓平台上的插件开发"这个主题中,我们关注的是如何在PhoneGap应用中创建自定义的插件,以便将前端HTML与Android的原生代码连接起来。具体来说,这个例子涉及到将一个字符串从前端传输到Android的原生...

    PhoneGap Android插件 调用toast 和 notification

    在`config.xml`中添加`&lt;feature&gt;`标签,确保PhoneGap知道这个插件,并将`Notification.java`添加到Android平台的源代码目录。 总的来说,这个压缩包包含了一个完整的PhoneGap插件,用于在Android应用中调用`Toast`...

    phoneGap实现android程序开发代码

    在这个“phoneGap实现android程序开发代码”中,我们将探讨如何使用PhoneGap进行Android应用开发。 首先,我们需要安装PhoneGap的开发环境。这包括安装Java Development Kit (JDK),Android SDK,以及集成开发环境...

    android PhoneGap 自定义插件

    PhoneGap是一种跨平台的移动应用开发框架,它允许开发者使用HTML、CSS和JavaScript来构建原生的...通过深入研究这个例子,你将能更好地理解PhoneGap插件开发的过程,并且能够自己动手创建新的插件来满足特定的需求。

    【免费】phonegap调用安卓插件实现GPS定位

    - 在PhoneGap项目中创建一个Android插件,这个插件会包含Java和JavaScript两部分。Java部分用于处理与Android系统的交互,JavaScript部分则提供给Web端调用。 - Java代码中,你需要继承`CordovaPlugin`类,并重写`...

    phonegap2.9.0插件开发

    PhoneGap 2.9.0 版本虽然较旧,但仍然对理解基础的插件开发机制有着重要的意义。 **PhoneGap 插件开发** PhoneGap 插件是连接JavaScript世界和原生移动平台API的关键组件。它们允许开发者通过JavaScript调用设备的...

    android与phonegap混合开发之相互跳转

    在移动应用开发领域,PhoneGap和Android是两种广泛使用的平台。PhoneGap是一种基于HTML5、CSS3和JavaScript的跨平台框架,它允许开发者使用Web技术创建原生移动应用。而Android则是Google主导的开源操作系统,提供了...

    phonegap android demo

    总的来说,PhoneGap Android Demo是一个实践教程,展示了如何在Android平台上利用PhoneGap开发混合型应用。通过学习和研究这个示例,开发者可以快速掌握PhoneGap的基本用法,进一步利用Web技术开发出具有原生性能的...

    phonegap android 录音照相录像 demo

    PhoneGap是一款跨平台的移动应用开发框架,它允许开发者使用HTML、CSS和JavaScript来构建原生的移动应用程序。在这个“phonegap android 录音照相录像 demo”项目中,我们将会探讨如何使用PhoneGap在Android平台上...

    phonegap+android开发环境配置

    总的来说,配置PhoneGap+Android开发环境需要安装JDK、Android SDK、可能的Eclipse/Android Studio,以及PhoneGap本身。确保所有组件都更新到最新版本,以获得最佳的开发体验。此外,熟悉PhoneGap API和Android SDK...

    phonegap插件包Android版本

    4. **插件开发**:如果你需要自定义特定功能,你可以开发自己的PhoneGap插件。这涉及到编写JavaScript接口(通常位于`www`目录下的JS文件),以及对应的Android Java类,该类继承自CordovaPlugin,并重写`execute()`...

    基于PhoneGap的Android应用开发

    ### 基于PhoneGap的Android应用开发 #### 一、引言 随着移动互联网的飞速发展,跨平台移动应用开发技术越来越受到开发者们的青睐。PhoneGap作为一款开源框架,能够利用HTML5、CSS3与JavaScript等Web技术来开发跨...

    phonegap plugins (插件集)

    1. **Android 插件**:Android平台的插件通常用Java编写,它们为PhoneGap应用提供了与Android SDK的接口。这些插件可以让你实现诸如调用系统相机拍照、获取用户位置信息、使用蓝牙进行数据传输等功能。 2. **iOS ...

    android之PhoneGap入门实例

    PhoneGap的核心理念是通过Web技术实现与移动设备硬件的交互,让开发者能够利用熟悉的Web开发技能开发出能在iOS、Android、Windows Phone等多平台运行的应用。 在"android之PhoneGap入门实例"中,我们首先需要了解...

Global site tag (gtag.js) - Google Analytics