こんにちは私はadobeAIR用のSMSネイティブ拡張機能を作成しようとしています。以前はObjective-cでコーディングしていましたが、送信またはキャンセルを押したときにSMSウィンドウが閉じないという事実を除いて、すべて正常に機能します。以下はコードのメインセクションですが、さらに情報が必要かどうか私に尋ねてください。読んでくれてありがとう。また、なぜxcodeは2行目に「プロトコルのメソッドが実装されていません」と言っているのですか?
#import "SMSComposerHelper.h"
@implementation SMSComposerHelper
//Event name
static NSString *event_name = @"SMS_COMPOSER_EVENT";
-(void) sendSMS:(NSString *)toRecipient
messageBody:(NSString *)messageBody
{
FREDispatchStatusEventAsync(context, (uint8_t*)[event_name UTF8String], (uint8_t*)[@"WILL_SHOW_MAIL_COMPOSER" UTF8String]);
MFMessageComposeViewController *smsComposer = [[MFMessageComposeViewController alloc] init];
smsComposer.messageComposeDelegate = self;
//make string into array
NSArray *recipientArray;
recipientArray = [NSArray arrayWithObjects: toRecipient, nil];
smsComposer.body = messageBody;
smsComposer.recipients = recipientArray;
//show sms composer
[[[[UIApplication sharedApplication] keyWindow] rootViewController] presentModalViewController:smsComposer animated:YES];
}
// Dismisses the sms composition interface when users tap Cancel or Send.
-(void) smsComposeController: (MFMessageComposeViewController*)controller didFinishWithResult: (MessageComposeResult)result error:(NSError*)error
{
NSString *event_info = @"";
// Notifies users about errors associated with the interface
switch (result)
{
case MessageComposeResultCancelled:
event_info = @"SMS_CANCELED";
break;
case MessageComposeResultSent:
event_info = @"SMS_SENT";
break;
case MessageComposeResultFailed:
event_info = @"SMS_FAILED";
break;
default:
event_info = @"SMS_UNKNOWN";
break;
}
FREDispatchStatusEventAsync(context, (uint8_t*)[event_name UTF8String], (uint8_t*)[event_info UTF8String]);
FREDispatchStatusEventAsync(context, (uint8_t*)[event_name UTF8String], (uint8_t*)[@"WILL_HIDE_SMS_COMPOSER" UTF8String]);
context = nil;
//hide mail composer
[[[[UIApplication sharedApplication] keyWindow] rootViewController] dismissModalViewControllerAnimated:YES];
}
-(void)setContext:(FREContext)ctx {
context = ctx;
}
@end
応答 :
オマールはあなたの答えととても速く答えてくれて本当にありがとう!最初に私はあなたの解決策を使ってみました
[controller dismissModalViewControllerAnimated:YES];
しかし、これは何もしなかったので、私はそれを元に戻しました。私のヘッダーはすでに:
@interface SMSComposerHelper : NSObject<MFMessageComposeViewControllerDelegate> {
そこで、警告の修正に集中することにしました。警告は変更することで解決されました:
-(void) smsComposeController: (MFMessageComposeViewController*)controller didFinishWithResult: (MessageComposeResult)result error:(NSError*)error
に:
- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
なぜこれがうまくいったのか知りたいですか?オマールを知っていますか?それで私は警告を解決しましたが、それでも却下されませんでした。だから私はあなたの提案をもう一度試しました:
[controller dismissModalViewControllerAnimated:YES];
そしてそれはうまくいった!!!! どうもありがとう。あなたは私が何時間立ち往生していたかわかりません。私はあなたの答えを喜んで受け入れます。