js和iOS之间的交互的问题

在js端发出一个请求,在iOS的原生代码中,也就是webView去加载链接的时候,先去拦截url,拦截后,在iOS端去请求数据,请求下来数据后,把拿到的数据再去给js,然后js开始发出的链接的请求就会在js端返回iOS的请求数据。注意的是在js端并没有什么方法名之类的,js仅仅只是发出个url的请求。

这个没办法做到,只能js和iOS互相调用。没办法修改hook

如果只是在webview请求链接之前,拦截url,这个在webview的delegate中是有方法的。- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType。此方法会在跳转加载网页之前执行。

建议很好用Cordova 或者叫phonegap的三方框架,嵌入一个CDVWebViewController,然后开发你自己的插件。当然,这需要后台也使用Cordova的一个JS库。webView本人只提供了一个很low的JS原生交互接口:evluateJavaScript,可以执行web内的js调用,返回值只能是一个对象,就是这个方法的返回值。如果是多个对象,js方面要对数据做包装,只能有一个返回值。