[英]how to read javascript variable var and then pass its value to objective-c
[英]How to pass Objective-C value to JavaScript
现在我想将 Objective-C object(字符串)传递给 JavaScript(在 WKWebView 中)。
想在执行 window.onload 的时机将window.onload
变量加载到 JavaScript 中,如下所示。
var objcString = "";
window.onload = function() {
objcString = objc.getObjcString();
execXxxWhenWindowOnload(objcString);
}
如何实现 Objective-C function?
您可以使用 evaluateJavaScript function 来传递值。 这是一个例子,请检查
- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation {
NSString *strFunction = [NSString stringWithFormat:@"'function name'('%@')",'value'];
[self.webview evaluateJavaScript:strFunction completionHandler:nil];
}
假设:
您可以考虑使用查询参数(尽管要小心不要与 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);
}
我还没有找到在window.onload
之前使用WKUserScript
/ WKUserScriptInjectionTimeAtDocumentStart
duo 注入自定义 js 的方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.