文档章节

Mac phonegap 入门 -Cordova plugin

 红胖子
发布于 2015/09/22 15:19
字数 371
阅读 15
收藏 0

使用 plugman 管理你项目的插件. 如果没有可以使用npm加一个. 

(可以在iOS最小化地使用 Cordova console plugin 来接受log message):

$ plugman install --platform ios --project . --plugin cordova-plugin-console


Cordova plugin(插件) 是Cordova 和 iOS views通信的桥梁,下面将试图通过在tablevc里面添加一个数据来展示它的用法。

在iOS里,Cordova plugins 继承 CDVPlugin,。当页面通过javaScrip进行cordova.exec函数时,返回一个CDVPluginResult实例。

exec(<successFunction>, <failFunction>, <service>, <action>, [<args>]);
pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:myStr];
pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"Arg was null"];

返回结果可以参照 this doc.


Create a Cordova Plugin

下面将建立一个Cordova Plugin 类

#import <Cordova/CDVPlugin.h>
@interface MyHybridPlugin : CDVPlugin
    - (void)addBookmark:(CDVInvokedUrlCommand*) command;
@end
#import "MyHybridPlugin.h"
#import "MainViewController.h"
#import "MyTableViewController.h"
@implementation MyHybridPlugin
    -(void)addBookmark:(CDVInvokedUrlCommand*) command {
        NSString* bookmark = [command.arguments objectAtIndex:0];        if(bookmark) {
            NSLog(@"addBookmark %@", bookmark);
            MainViewController* mvc = (MainViewController*)[self viewController];

            MyTableViewController* tvc = (MyTableViewController*)mvc.tabBarController.viewControllers[1];
            [tvc.bookmarks addObject:bookmark];
            [tvc.tableView reloadData];
            CDVPluginResult* pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];
            [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
        } else {
            CDVPluginResult* pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR];
            [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
        }
    }@end

Use the Plugin

  1. 现在打开你的 Cordova index.js ,位于www/js。加入下面代码

     addBookmark: function() {      
         var win = function(d) {     
             console.log("Bookmark added!");
         };     
         var fail = function(e) {                 
             console.log(e)
         }     
         var bookmark = document.getElementById("bookmark").value
         cordova.exec(win, fail, "MyHybridPlugin", "addBookmark", [bookmark]);
     }
  2. 打开 index.html 替换div里的内容为下面的代码

     <div class="app">
             <label for="bookmark">Bookmark this:</label>
             <input id="bookmark" type="text" />
             <button id="bookmarkBtn">Add a bookmark</button>
       </div>
  3. 现在返回index.js 并且在onDeviceReady 函数里,注释app.receivedEvent('deviceready'),并加入document.getElementById("bookmarkBtn").onclick = app.addBookmark;

     onDeviceReady: function() {     
     //app.receivedEvent('deviceready');
         document.getElementById("bookmarkBtn").onclick = app.addBookmark;
     },
  4. 到config.xml加入下面的节点

     <feature name="MyHybridPlugin">
         <param name="ios-package" value="MyHybridPlugin" />
     </feature>
  5. 结果呈现


本文转载自:

粉丝 0
博文 6
码字总数 272
作品 0
广州
私信 提问
DatePicker iOS Plugin for using PhoneGap / Cordova 3.0

❗️ [Note] This project is deprecated and will be continued by https://github.com/VitaliiBlagodir/cordova-plugin-datepicker DatePicker iOS Plugin for using PhoneGap / Cordova 3......

Michaelyn
2017/10/23
13
0
phoneGap3.0安装步骤(以windows下的android环境为例):

phoneGap3.0安装步骤(以windows下的android环境为例): 环境: WIN系统,JDK,Android,Eclipse,Ant,Git,PhoneGap3.x (Cordova) 1. 安装JRE,设置JAVAHOME,比如JAVAHOME=C:programJavaj...

kisshua
2014/03/05
106
0
Cordova 和 Ionic 的区别

Cordova Apache Cordova是一个开源的移动开发框架。允许你用标准的web技术-HTML5,CSS3和JavaScript做跨平台开发。 应用在每个平台的具体执行被封装了起来,并依靠符合标准的API绑定去访问每个...

华山猛男
2018/11/07
179
0
PhoneGap或者Cordova框架下实现Html5中JS调用Android原生代码

按照我一惯得套路,我会先说一点废话。PhoneGap和Cordova什么关系?为什么有的地方叫Cordova而有的地方叫PhoneGap ?PhoneGap是一款HTML5平台,通过它,开发商可以使用HTML、CSS及JavaScript来...

Java编程思想
2014/07/21
8.7K
0
【PhoneGap】环境安装配置浅析

由于项目需要,需要了解PhoneGap架构以其在各个平台的环境配置,阅读了官网部分文档,总结如下。 【官网地址】 http://phonegap.com/ 【环境配置】 参考: http://phonegap.com/install/ 1. ...

嘻哈开发者
2015/01/18
176
0

没有更多内容

加载失败,请刷新页面

加载更多

android抓取app启动类

adb shell,然后logcat | grep "ActivityManager: START"

安卓工程师王恒
31分钟前
14
0
并发编程之Java锁

一、重入锁 锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized(重量级) 和 ReentrantLock(轻量级)等等 ) 。这些已经写好提供的锁为我们开发提供了便利。 重入锁...

codeobj
34分钟前
15
0
云栖深度干货 | 打造“云边一体化”,时序时空数据库TSDB技术原理深度解密

本文选自云栖大会下一代云数据库分析专场讲师自修的演讲——《TSDB云边一体化时序时空数据库技术揭秘》 自修 —— 阿里云智能数据库产品事业部高级专家 认识TSDB 第一代时序时空数据处理工具...

开源中国小二
35分钟前
13
0
mobile-nfv运行步骤

1. 编译过程 在 [workspaces] 的 <workdir> 目录运行以下命令: $ nfv-build make clean all... $ nfv-build make mobile-package...*** PACKAGE BUILT AT: /vob/BUG_117504/casa/nfv/b......

Robotcl_Blog
45分钟前
13
0
如何对邮箱做域名验证

做客户开发的时候,邮件群发仍然是个有效的手段。如果发海外邮件的话,选个服务器在国外的邮箱比较好,因为邮件抵达率会比较高一些。比如gmail, zoho mail等等,都可以。本文以zoho mail为例...

Zoho云服务
45分钟前
18
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部