首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将Objective-C值传递给JavaScript

问如何将Objective-C值传递给JavaScript
EN

Stack Overflow用户
提问于 2021-01-12 14:14:27
回答 2查看 126关注 0票数 0

现在,我想将一个Objective-C对象(字符串)传递给JavaScript (在WKWebView中)。

我想在执行window.onload时将Objective-C变量加载到JavaScript中,如下所示。

代码语言:javascript
复制
var objcString = "";

window.onload = function() {
    objcString = objc.getObjcString();

    execXxxWhenWindowOnload(objcString);
}

如何实现Objective-C函数?

EN

回答 2

Stack Overflow用户

发布于 2021-01-12 14:19:34

您可以使用evaluateJavaScript函数来传值。这里有一个例子,请检查

代码语言:javascript
复制
- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation {
  NSString *strFunction = [NSString stringWithFormat:@"'function name'('%@')",'value'];
  [self.webview evaluateJavaScript:strFunction completionHandler:nil];
}
票数 0
EN

Stack Overflow用户

发布于 2021-01-14 04:20:56

假设:

  • 这是您从应用程序发起的URL请求,它将使您进入页面(而不是稍后导航到某些链接)
  • 您不希望传递敏感数据

您可以考虑使用查询参数(尽管要小心不要与url中一些现有的查询参数名称冲突)。

代码语言:javascript
复制
NSString *yourCustomString = @"value";
NSString *urlString = [NSString stringWithFormat:@"https://www.yourserver.com?myParam=%@", yourCustomString];
[self.webView loadRequest:[NSURLRequest requestWithURL: [NSURL URLWithString:urlString]]];

在js对应的代码中,你可以这样处理:

代码语言:javascript
复制
window.onload = function() {
    const urlParams = new URLSearchParams(window.location.search);
    const myParam = urlParams.get('myParam');
    execXxxWhenWindowOnload(myParam);
}

我还没有找到使用WKUserScript / WKUserScriptInjectionTimeAtDocumentStart duo在window.onload之前注入自定义js的方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65678829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档