半透明のUIViewControllerを作って、そこにあるテキストフィールドから入力された文字を返すというプラグインを作っていますが、
そこはあまり関係がなく、SwiftでApache Cordovaのプラグインを作る方法です。
ちまたにある情報がSwiftになってきているので、せめてUIに関わる部分はSwiftで試してみようということでSwiftでのプラグインです。

1 ) XXXXX-Bridging-Header.h に以下の行を追加

なければ、2) の swiftファイルを追加の方を先にしてください。追加後、ビルド処理でも行えば勝手にできるはずです。

#import <cordova /CDV.h>
2 ) Pluginとなる swiftファイルを作成する

ここでは、@objc(クラス名)を追加してください。
ここで指定した名前が、ObjectiveCでのクラス(?)になるので、今まで通りplugin.xmlに追加すれば見えるようになります。

ちなみに、callbackメソッドは立ち上げるUIViewControllerから呼ばれる想定です。
なので、openメソッドではすぐに結果を返していません。

import Foundation
import UIKit

@objc(ColtwareTextFieldPlugin) class ColtwareTextFieldPlugin : CDVPlugin {
    
    var command: CDVInvokedUrlCommand?;
    
    func open(command: CDVInvokedUrlCommand){
        let result = CDVPluginResult(status: CDVCommandStatus_NO_RESULT);
        result.setKeepCallbackAsBool(true);
        
        commandDelegate.sendPluginResult(result, callbackId: command.callbackId);
        self.command = command;
        
        //  ---> 実際の処理を記述
    }
    
    func callback(message: String){
        if  self.command != nil {
            let cid = self.command!.callbackId;
            
            let result = CDVPluginResult(status: CDVCommandStatus_OK, messageAsString: message);
            result.setKeepCallbackAsBool(false);
            commandDelegate.sendPluginResult(result, callbackId: cid);
            
        }
        self.command = nil;
        
    }
}

あと、swiftということで最低限のiOSのターゲットが変わってしまうので、そこに注意してください。

お仕事のご依頼・相談を承ります
この記事に関連するお仕事のご依頼やご相談をお待ちしております。 詳しくは、こちら

Leave a Reply

お仕事のご依頼・相談
この記事に関連するお仕事のご依頼やご相談をお待ちしております。 詳しくは、こちら
ソフトウェア&ライブラリ




ライブラリ
airxmail(en)
AIR版メール送受信ライブラリ
airxzip
AIR版ZIP圧縮・解凍ライブラリ
執筆書籍
本、雑誌等

WEB記事:CodeZine
執筆記事はこちら
カレンダー
2015年8月
« 7月   9月 »
 12
3456789
10111213141516
17181920212223
24252627282930
31  

カスタム検索
RSS
Add to Google < !–adsense–>
アーカイブ
カテゴリ
にほんブログ村 IT技術ブログへ