Phonegap for IOS Plugin插件开发
1.新建Phonegap工程MyPlugin
环境
xcode4.5.1
phonegap2.1.0
2.在Plugin文件夹下创建实现Plugin子类
- //
- // MyPlugin.h
- // MyPGPlugin
- //
- // Created by kllmctrl on 12-10-29.
- //
- //
- #import <Cordova/CDV.h>
- @interface MyPlugin : CDVPlugin
- - (void) add:(CDVInvokedUrlCommand*)command;
- @end
- #import "MyPlugin.h"
- #import <Cordova/CDV.h>
- @implementation MyPlugin
- - (void) add:(CDVInvokedUrlCommand*)command{
- CDVPluginResult* pluginResult = nil;
- NSString* javaScript = nil;
- @try {
- NSString* echo = [command.arguments objectAtIndex:0];
- NSString* echo2 = [command.arguments objectAtIndex:1];
- if (echo != nil
- && [echo length] > 0
- && echo2 != nil
- && [echo2 length] > 0) {
- /**
- *相加字符串
- */
- NSString *addResult = [NSString stringWithFormat:@"%@%@", echo, echo2];
- pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:addResult];
- javaScript = [pluginResult toSuccessCallbackString:command.callbackId];
- } else {
- pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR];
- javaScript = [pluginResult toErrorCallbackString:command.callbackId];
- }
- } @catch (NSException* exception) {
- pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_JSON_EXCEPTION messageAsString:[exception reason]];
- javaScript = [pluginResult toErrorCallbackString:command.callbackId];
- }
- [self writeJavascript:javaScript];
- }
- @end
3.在www->js文件夹下创建实现 MyPlugin.js
- var MyPlugin = {
- add: function(args,args2,addSuc,addFaild) {
- cordova.exec(addSuc, addFaild, "MyPlugin", "add", [args,args2]);
- }
- };
4.修改index.html
- <!DOCTYPE html>
- <!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
- http://www.apache.org/licenses/LICENSE-2.0
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- -->
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <meta name="format-detection" content="telephone=no" />
- <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
- <link rel="stylesheet" type="text/css" href="css/index.css" />
- <title>kllmctrl</title>
- </head>
- <body>
- <div class="app">
- <h1>Apache Cordova kllmctrl</h1>
- <div id="deviceready" class="blink">
- <p class="event listening">Connecting to Device</p>
- <p class="event received">Device is Ready</p>
- </div>
- </div>
- <script type="text/javascript" src="cordova-2.1.0.js"></script>
- <script type="text/javascript" src="js/MyPlugin.js"></script>
- <script type="text/javascript">
- document.addEventListener("deviceready", onDeviceReady, false);
- function onDeviceReady() {
- /**
- * 加载成功调用js
- */
- MyPlugin.add("My","Plugin",addSuc,addFiald);
- }
- </script>
- <script type="text/javascript">
- /**
- * js回调函数
- */
- function addSuc(result) {
- console.log('addSuc='+result);
- }
- function addFiald() {
- console.log('addFiald');
- }
- </script>
- </body>
- </html>
5.配置Cordova.plist
在Plugins建MyPlugin=MyPlugin
6.run
phonegap插件下载地址:https://github.com/phonegap/phonegap-plugins/
相关推荐
周公周金桥 2020-09-06
大象从不倒下 2020-07-31
AlisaClass 2020-07-19
MaureenChen 2020-04-21
xingguanghai 2020-03-13
teresalxm 2020-02-18
木四小哥 2013-05-14
SoShellon 2013-06-01
Simagle 2013-05-31
羽化大刀Chrome 2013-05-31
waterv 2020-01-08
LutosX 2013-07-29
vanturman 2013-06-27
wutongyuq 2013-04-12
luoqu 2013-04-10
today0 2020-09-22
89520292 2020-09-18