来自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的Toast插件,使用方法不用介绍了,用phoneGap开发android应用的人都知道,希望对大家有帮助。
phonegap开发插件包,各个平台的都有,像什么短信收发插件,蓝牙控制插件等等,具体的看文件包吧
Phonegap在安卓平台上的插件开发 一个前台html传string到native端经过md5处理后返回结果到前台html的例子
它使开发者能够利用iPhone,Android,Palm,Symbian,WP7,Bada和Blackberry智能手机的核心功能——包括地理定位,加速器,联系人,声音和振动等,此外PhoneGap拥有丰富的插件,可以以此扩展无限的功能。
使用phonegap框架开发android应用程序,免不了需要涉及js与java原生代码的交互,自定义phonegap插件可以满足这个需求。 在本教程中,介绍了怎么使用phonegap插件跳转到另一个Android Activity
■ 用PhoneGap和它的NFC插件写Android上的NFC应用程序用例 ■ 深入了解NDEF结构:测试已有的写标签程序,然后写自己的标签程序 ■ 用PhoneGap事件监听器来监听和过滤NDEF消息 ■ 写一个完整的Android应用程序来控制...
它使开发者能够利用iPhone,Android,Palm,Symbian,WP7,Bada和Blackberry智能手机的核心功能——包括地理定位,加速器,联系人,声音和振动等,此外PhoneGap拥有丰富的插件,可以以此扩展无限的功能。PhoneGap是...
它使开发者能够利用iPhone,Android,Palm,Symbian,WP7,Bada和Blackberry智能手机的核心功能——包括地理定位,加速器,联系人,声音和振动等,此外PhoneGap拥有丰富的插件,可以以此扩展无限的功能。PhoneGap是...
我成功安装上了。部分插件是在线更新的。在eclipse里安装sdk。文档很详细,链接都给了。
教程名称: PhoneGap视频教程(10讲)【TI教程网】PhoneGap Android开发环境搭建视屏教程【TI教程网】PhoneGap目录结构介绍, 插件下载和安装、连接真实机器调试【TI教程网】PhoneGap视频教程第一讲【TI教程网】...
时间F或行动 - “世界您好”PhoneGap Android的23 在PhoneGap Android应用程序是什么呢? 25 入门黑莓机网络工程26 时间f或行动 - 你的第一个PhoneGap黑莓应用程序27 代码签名F或黑莓33 Summar Ÿ 34 第2章:在多个...
它使开发者能够利用iPhone,Android,Palm,Symbian,WP,Bada和Blackberry智能手机的核心功能——包括地理定位,加速器,联系人,声音和振动等,此外PhoneGap拥有丰富的插件,可以以此扩展无限的功能。 下面...
科尔多瓦插件添加/playground/pp/barcode/pluginscom.phonegap.plugins.barcodescanner 科尔多瓦平台添加android 添加android和java路径的命令 export HOME="/home/appuser" export ANDROID_HOME="/env/adt-...
它使开发者能够利用iPhone,Android,Palm,Symbian,WP7,Bada和Blackberry智能手机的核心功能——包括地理定位,加速器,联系人,声音和振动等,此外PhoneGap拥有丰富的插件,可以以此扩展无限的功能。PhoneGap是...
它使开发者能够在网页中调用IOS,Android,Palm,Symbian,WP7,WP8,Bada和Blackberry等智能手机的核心功能——包括地理定位,加速器,联系人,声音和振动等,此外PhoneGap拥有丰富的插件,可以调用
Eclipse中安卓phoneGap的开发,使用phoneGap开发的照片多选插件
这个Phonegap插件是由Ogonium的Dov Goldberg开发的。 根据本自述文件底部的许可证,可以在任何项目中随意使用该代码。 如果需要,我很乐意提供我的咨询服务,可以通过以下方式与我联系: 描述此插件提供了在...
它使开发者能够利用iPhone,Android,Palm,Symbian,WP7,Bada和Blackberry智能手机的核心功能——包括地理定位,加速器,联系人,声音和振动等,此外PhoneGap拥有丰富的插件,可以以此扩展无限的功能。
默认的 Phonegap (Cordova) 相机插件调用本机相机,这使得 Android Garbage Collector 杀死后台应用程序。 此插件可避免您的应用程序进入后台并被其他应用程序的垃圾收集器杀死。 我们使用了Phonegap源代码并对其...
Cordova / Phonegap 插件用于与HTTP服务器通信,允许SSL锁定!支持iOS and Android.