Edited at

cocos2d-xからObjective-C++を利用して、iOS標準のメールアプリを呼び出す。

More than 3 years have passed since last update.


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のシュミレーターで試していたが、メールアプリが入っておらず、動かなくてハマった。実機では、ちゃんと動いた。