自己动手打造基于 WKWebView 的混合开发框架(二)——js 向 Native 一句话传值并反射出 Swift 对象执行指定函数
这篇讲的是在基于WKWebView的混合开发中,如何让JavaScript(JS)代码直接调用Swift编写的原生功能。作者从WKWebView的一个“屌炸天”的新特性——`window.webkit.messageHandlers`方法出发,演示了JS如何通过`postMessage`这一句话,将字符串甚至JSON对象传递到Native层。 核心的巧妙之处在于,接收到消息后,作者利用苹果开放的runtime接口,通过解析出的类名和方法名字符串,动态反射出Swift对象并执行指定函数。这意味着网页可以按需调用任意预注册的原生方法,极大地增强了混合应用的灵活性。文章提供了从注册消息处理程序、接收数据到最终反射执行的完整代码示例,并配有截图验证了每一步的结果。 作者在此基础上构建了一个名为“BlackHawk”的纯Swift高性能框架,可作为Cordova的替代方案。整个过程将原本可能复杂的跨语言调用,简化为了清晰可循的几步操作。