以下に追加した例は、複数の文字列を使用した Phonegap での Email プラグインの実装です。NSNumbers またはその他の種類の引数を識別するために、いつでも私の文字列コードを置き換えることができます。
JSで::
まず、値を使用して引数を作成します。. .
var attachmentData = {};
attachmentData.data = userData;
attachmentData.fileName = fileName;
var mailData = {};
mailData.toRecipients = "";
mailData.subject = "Exporting Backup for user data";
mailData.body = "User data for application. Please find the attachment containing the data from the last week.";
nativeMail(attachmentData, mailData);
次に、Phonegap プラグイン用にこのすべてのデータをパッケージ化してプラグイン クラスに送信する関数を呼び出します。
function nativeMail(attachmentData, mailData){
e_args = {};
if(mailData.toRecipients)
e_args.toRecipients = mailData.toRecipients;
if(mailData.subject)
e_args.subject = mailData.subject; //"Hello World";
if(mailData.body)
e_args.body = mailData.body;
//call to phonegap plugin for native mail iOS
e_args.attachmentFileName = attachmentData.fileName;
e_args.datatoattach = attachmentData.data;
cordova.exec(null, fail, "EmailComposer", "showEmailComposer", [e_args]);
}
今度は EmailComposer.h ファイル
- (void) showEmailComposer:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options;
そして最後に、Mutable Dictionary/Array からこれらの引数を取得し、文字列値を取得する方法について説明します。
- (void) showEmailComposer:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options
{
NSString* toRecipientsString = [options valueForKey:@"toRecipients"];
NSString* ccRecipientsString = [options valueForKey:@"ccRecipients"];
NSString* bccRecipientsString = [options valueForKey:@"bccRecipients"];
NSString* subject = [options valueForKey:@"subject"];
NSString* body = [options valueForKey:@"body"];
NSString* isHTML = [options valueForKey:@"bIsHTML"];
. . . . . .
}
これが唯一の方法です。これは、Phonegap 自体が JavaScript Web アプリからネイティブ クラスに渡されるデータを処理する方法に関係しています。変更できません。MutableDictionary または MutableArray は、必要なあらゆる種類のデータを処理します。制限はありません。ただし、このデータの受け渡しは、上記の形式を使用してのみ行うことができます。.m クラスにオプションと引数があれば、それらを自由に取得したり、必要なデータ型に解析したりできます。