当某个事件触发时,Javascript能在iOS中调用任何东西吗?

Can Javascript call anything in iOS when a certain event fires?

本文关键字:调用 iOS 任何东 能在 Javascript 事件      更新时间:2023-09-26

我正在实现一个使用WebSockets的iPhone应用程序(在一个隐藏的UIWebView中),所以我需要Javascript和Obj-C之间的一些通信。

我知道[webview stringByEvaluatingJavaScriptFromString]方法,这是伟大的发送websocket响应,但我想更多的是"当一个事件在JS中触发,让iOS知道"。我将使用这个概念来触发iOS做的东西,当它收到一个特定的websocket响应。

对于如何解决这样的问题有什么想法吗?提前感谢

我认为最好的和唯一的方法是在JS中做一个window.location.href当事件被触发时,并使用WebView方法:

(BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType 

然后您可以捕获URL并决定是否重新加载页面。然后使用URL在Objective-C端采取适当的操作。