Skip to content

Instantly share code, notes, and snippets.

@ka2n
Last active December 14, 2015 03:09
Show Gist options
  • Save ka2n/9e630557f9c45a7f2aef to your computer and use it in GitHub Desktop.
Save ka2n/9e630557f9c45a7f2aef to your computer and use it in GitHub Desktop.
はじめまして、手抜きですみません
PhoneGapとかでiOSアプリのネイティブ部分と連携する仕組み
---
自己紹介
Katsuma Ito (ka2n)
ddid co., ltd.
---
iOSアプリでWebページを埋め込むためのクラス -> UIWebView
// 例
UIWebView *webView = [UIWebView alloc] init];
[webView loadRequest:request];
// Native to WebView
// JavaScriptを実行でき、評価の結果が文字列として取得可能
NSString *result;
result = [webView stringByEvaluatingJavaScriptFromString:@"foo();"];
// WebView to Native
// WebView内部でのページ遷移, XHR, iframeの読み込みをキャッチしできる
(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
---
// WebViewから情報を伝えるには
予め決めたフォーマットのURLへのリクエストを発生させる
"api://host/path/to/anywhere?get=value"
---
// リクエストを発生させるには
1) location.href = url
2) iframeのエレメントを作って、iframe.src = url
3) XHRでリクエスト
// データをやり取りするには
1) クエリストリングに入れて分解
2) WebView内部からJavaScript経由でJSONとして取得
---
// 参考
https://git-wip-us.apache.org/repos/asf?p=cordova-js.git;a=blob_plain;f=lib/ios/exec.js
@ka2n
Copy link
Author

ka2n commented Feb 23, 2013

https://bitbucket.org/ka2n/msgpack_test

実際に動かしたプロジェクトはここです。
jadeとcoffeeとXCodeがあれば動かせると思います。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment