LoginSignup
1
1

More than 5 years have passed since last update.

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

Last updated at Posted at 2014-12-01

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

1
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1