我正在开发一个混合项目,该项目涉及在 UIWebView 中异步加载内容。
我们正在考虑在哪里下载内容。
一种选择是在 UIWebView 内进行异步加载:
$.ajax({
url: "http://hostname.com/login",
type: 'POST',
dataType: 'text',
data: login_info,
success: function (data) {
},
error: function (xhr) {}
})
第二个选项是通过 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()"];
什么是最好的?第一种方法不产生线程,第二种方法是,还是没关系?