一人もくもく会 α verでサービス開始しました。

cocos2d-jsにてiOSでWebViewを表示する

cocos2d-jsのiOSの方でWebViewを表示する方法。
ダイアログ、ポップアップ、ウィンドウ、モーダル、等
色々検索結果に迷うと思うが多分ここではモーダルが正しいと思う。

cocos2d-jsで検索したら情報は少なかったのだが、
単純にモーダルでWebViewを表示するだけの方法であればよく見つかるし 
普通のやり方だと思う。

まず、Xcodeにて、表示するモーダルウィンドウのレイアウトを
storyboardを使用して作成する。
今回はWebView.storyboardとして作成し、
中にWebViewControllerというViewを作成した。
ViewControllerにこのWebViewControllerを割り当て、
Storyboard IDにもWebViewControllerと名前をつけておく。

あとはRootViewControllerに下記を追加し、
js側から呼び出せば表示される。

+ (void)showWebView:(NSString *)url {
    UIViewController* controller = [UIApplication sharedApplication].keyWindow.rootViewController;
    
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"WebView" bundle:[NSBundle mainBundle]];
    WebViewController *initialViewController = [storyboard instantiateViewControllerWithIdentifier:@"WebViewController"];
    [initialViewController setUrl:url];
    [controller presentViewController:initialViewController animated:YES completion:nil];
}

setUrlはWebViewControllerにURL設定用のメソッドを追加しただけ。
WebViewController側のWebView表示部分は下記のような感じ。

- (void)viewDidLoad {
    [super viewDidLoad];
    
    _mButton.layer.borderColor = [UIColor grayColor].CGColor;
    _mButton.layer.borderWidth = 1.0f;
    _mButton.layer.cornerRadius = 7.5f;
    
    NSURL* url = [NSURL URLWithString: mUrlString];
    NSURLRequest* myRequest = [NSURLRequest requestWithURL: url];
    [self.mWebView loadRequest:myRequest];

}