cocos2d-xからメールアプリを呼びたい
静的な関数でopenMailを実装します。また、Objective-C++に挑戦します。
openMail関数のヘッダ
Mail.h
#pragma once
#include <stdio.h>
#include <platform/CCApplicationProtocol.h>
class CC_DLL Mail : public cocos2d::ApplicationProtocol{
public:
static void openMail(const char *adress,const char *subject = "",const char *body = "",const char *cc = "");
};
ヘッダはc++として書いているけどOKなのか疑問
openMail関数の実装
Mail.mm
void MyApplication::openMail(const char *adress,const char *subject,const char *body,const char *cc){
NSString *adressNS = [[NSString alloc] initWithUTF8String:adress];
NSString *subjectNS = [[NSString alloc] initWithUTF8String:subject];
NSString *bodyNS = [[NSString alloc] initWithUTF8String:body];
NSString *ccNS = [[NSString alloc] initWithUTF8String:cc];
NSString*scheme = [NSString stringWithFormat:@"mailto:%@?cc=%@&subject=%@&body=%@",adressNS,ccNS,subjectNS,bodyNS];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:scheme]];
}
Objective-Cがわからないので、NSStringをallocしてるのがちゃんと開放されるのかが心配・・・
注意点
最初Xcode6.1のiOSのシュミレーターで試していたが、メールアプリが入っておらず、動かなくてハマった。実機では、ちゃんと動いた。