gpt4 book ai didi

swift - 评估JavaScript WKWebView iOS 15 不工作

转载 作者:行者123 更新时间:2023-12-04 13:51:28 26 4
gpt4 key购买 nike

我正在使用 WebCrypto 库来解密数据,但它不适用于 iOS 15
它在 iOS 14 中运行良好
我检查了 webView 的evaluateJavaScript 函数抛出错误

Error Domain=WKErrorDomain Code=4 "A JavaScript exception occurred" UserInfo={WKJavaScriptExceptionLineNumber=27, 
WKJavaScriptExceptionMessage=TypeError: undefined is not an object (evaluating 'y.importKey'), WKJavaScriptExceptionColumnNumber=8260,
WKJavaScriptExceptionSourceURL=undefined, NSLocalizedDescription=A JavaScript exception occurred}

最佳答案

我也偶然发现了这一点,新的 IOS15 行为也确实破坏了我们的代码。显然 Apple 改变了 evaluateJavaScript 的语义:
根据以下代码的调用时间,如果过早调用,新函数不会出现在 JS 命名空间中。

[_webview evaluateJavaScript:@"function foobar() {console.log('in foobar');}" completionHandler:^(NSObject* res,NSError* err) {
}];
如果在此之前调用此代码
[_webview loadRequest:req];
然后它不再有任何影响(但此时没有出现错误……该函数进入了涅盘)。
解决方案是添加诸如 https://developer.apple.com/forums/thread/684020 中指出的用户脚本之类的代码。
WKUserScript *script = [[WKUserScript alloc] initWithSource:@"function foobar() {console.log('in foobar');" injectionTime:WKUserScriptInjectionTimeAtDocumentStart forMainFrameOnly:NO];
[_webview.configuration.userContentController addUserScript:script];

关于swift - 评估JavaScript WKWebView iOS 15 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69055147/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com