UIWebView で非同期にコンテンツを読み込むハイブリッド プロジェクトに取り組んでいます。
コンテンツのダウンロードをどこで行うかを考えています。
1 つのオプションは、UIWebView 内で非同期読み込みを行うことです。
$.ajax({
url: "http://hostname.com/login",
type: 'POST',
dataType: 'text',
data: login_info,
success: function (data) {
},
error: function (xhr) {}
})
2 番目のオプションは、Javascript ブリッジを介したネイティブ コードです。
$.ajax({
url: "myprotocol://login",
type: 'POST',
dataType: 'text',
data: login_info,
success: function (data) {
},
error: function (xhr) {}
})
捕まえろ:
- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest: (NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType
{
if([self containsCustomProtocol:request]) {
//do native call
return NO;
}
そして、メインスレッドのリターン時にこれを呼び出します:
[this.webView stringByEvaluatingJavaScriptFromString:@"methodName()"];
何が一番いいでしょうか?最初の方法ではスレッドの生成はありませんか、2番目の方法でははいですか、それとも問題ではありませんか?