现在,我想将一个Objective-C对象(字符串)传递给JavaScript (在WKWebView中)。
我想在执行window.onload时将Objective-C变量加载到JavaScript中,如下所示。
var objcString = "";
window.onload = function() {
objcString = objc.getObjcString();
execXxxWhenWindowOnload(objcString);
}如何实现Objective-C函数?
发布于 2021-01-12 14:19:34
您可以使用evaluateJavaScript函数来传值。这里有一个例子,请检查
- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation {
NSString *strFunction = [NSString stringWithFormat:@"'function name'('%@')",'value'];
[self.webview evaluateJavaScript:strFunction completionHandler:nil];
}发布于 2021-01-14 04:20:56
假设:
您可以考虑使用查询参数(尽管要小心不要与url中一些现有的查询参数名称冲突)。
NSString *yourCustomString = @"value";
NSString *urlString = [NSString stringWithFormat:@"https://www.yourserver.com?myParam=%@", yourCustomString];
[self.webView loadRequest:[NSURLRequest requestWithURL: [NSURL URLWithString:urlString]]];在js对应的代码中,你可以这样处理:
window.onload = function() {
const urlParams = new URLSearchParams(window.location.search);
const myParam = urlParams.get('myParam');
execXxxWhenWindowOnload(myParam);
}我还没有找到使用WKUserScript / WKUserScriptInjectionTimeAtDocumentStart duo在window.onload之前注入自定义js的方法。
https://stackoverflow.com/questions/65678829
复制相似问题