我计划有一个带有uiwebview的
shell
iphone应用程序,我的应用程序的大部分都在uiwebview中通过
javascript运行.
现在我知道通过使用stringByEvaluatingJavaScriptFromString从obj-c环境到javascript环境的通信很容易,但是有一个很好的推荐方式从javascript环境到obj-c世界进行通信吗?
谢谢
解决方法
我总是使用应用程序“导航”到特殊URL的方法:
window.location = "myapp://somemessage/someargument";
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { NSURL *url = [request URL]; if ( [[url scheme] isEqualToString:@"myapp"] ) { [self handleJSEvent:url]; return NO; } return YES; }
此外,根据您的需要,您可以使用您使用JSON.stringify(事件)获取的某种事件队列,以响应使用上述方法发送到应用程序的消息.对于从app到js的通信,JSON也非常合适.
如果有标准或标准的方法来做到这一点,我显然错过了它.