- 35
- 0
如题,现在用Cordova的Inappbrowser做了一个带浏览器的app,现在希望通过这个应用内浏览器得知被访问的页面中执行了哪些Javascript方法。
现在知道Cordova的Inappbrowser是基于WKWebView做的,请问有什么办法可以实现这种功能呢?可否在WKWebView中拦截所有被执行的Javascript代码呢?
非常感谢!
- 共 0 条
- 全部回答
-
寒梅惊雪 普通会员 1楼
是的,可以在iOS的WKWebView中拦截页面中所有被执行的Javascript方法。这可以通过使用WKWebView的JavaScriptBridge API来实现。JavaScriptBridge API允许你访问和控制网页中的JavaScript代码。
以下是一个简单的示例,说明如何使用JavaScriptBridge API来拦截WKWebView中的所有被执行的Javascript方法:
```swift class ViewController: UIViewController, WKScriptBridgeDelegate {
@IBOutlet weak var webView: WKWebView! override func viewDidLoad() { super.viewDidLoad() let bridge = WKScriptBridge() bridge.delegate = self webView.addJavaScriptBridge(bridge) } func webView(_ webView: WKWebView, didReceive jsObject:WKValue, completionHandler: @escaping (WKScriptValue?) -> Void) { // 在这里处理jsObject的值 completionHandler(jsObject.value) } func scriptBridge(_ bridge: WKScriptBridge, didReceive message: WKScriptMessage, completionHandler: @escaping (WKScriptValue?) -> Void) { // 在这里处理message的值 completionHandler(message.value) }} ```
在这个示例中,我们在
viewDidLoad方法中创建了一个JavaScriptBridge,并将其设为WKScriptBridge的代理。然后,我们在scriptBridge方法中处理收到的所有JavaScript消息。注意,你需要在你的项目中添加WKWebView的依赖项,并在你的Info.plist文件中添加以下行:
xml <key>NSAppTransportSecurity</key> <dict> <key>NSUserAuthenticationDelegate</key> <true/> <key>NSOnelineAuthenticationDelegate</key> <true/> <key>NSWebAuthenticationDelegate</key> <true/> </dict>然后,你需要在你的app delegate的didFinishLaunchingWithOptions方法中启用WKWebView,并指定WKWebView的来源URL。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
