gpt4 book ai didi

javascript - 在 webview 中加载本地 javascript?

转载 作者:搜寻专家 更新时间:2023-11-01 06:07:57 24 4
gpt4 key购买 nike

我正在用我自己的广告快速制作移动浏览器,我想运行脚本。我已经注入(inject)了 javascript 本地文件,但它在其他窗口中打开并覆盖了 webview 内容。是否可以在 webview 页面中运行 javascript 代码?不在其他窗口,只在有页面内容的页面。希望你能得到它

最佳答案

使用WKWebView对于 javascript 方法调用:

第 1 步。 为 webkit 导入类

objective-c :#import <WebKit/WebKit.h>
swift :import WebKit

第 2 步。 创建 WKWebView实例(不幸的是,它只能以编程方式完成)

Obj-C @property (strong, nonatomic) WKWebView *wkWebView;

swift var wkWebView: WKWebView? = WKWebView()

第 3 步。 然后在 viewDidLoad

objective-C :

    WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] init];

NSString *scriptSourceCode = @"your javascript code here";
WKUserScript *script = [[WKUserScript alloc] initWithSource:source injectionTime:WKUserScriptInjectionTimeAtDocumentStart forMainFrameOnly:YES];

WKUserContentController *controller = [[WKUserContentController alloc] init];
[controller addUserScript:script];

configuration.userContentController = controller;

_wkWebView = [[WKWebView alloc] initWithFrame:self.view.frame configuration:configuration];

[self.view addSubview:_wkWebView];

swift :

    let configuration = WKWebViewConfiguration()
let controller = WKUserContentController()

let scriptSourceCode = "your javascript code here"
let script = WKUserScript(source: scriptSourceCode, injectionTime: WKUserScriptInjectionTime.AtDocumentStart, forMainFrameOnly: true)
controller.addUserScript(script)

configuration.userContentController = controller

self.wkWebView = WKWebView(frame: self.view.frame, configuration: configuration)

self.view.addSubview(self.wkWebView!)

第 4 步wkWebView 中加载 HTML 字符串(或 loadRequest) :

objective-C :

[_wkWebView loadHTMLString:_desiredHTML baseURL:[[NSBundle mainBundle] bundleURL]];

swift :

self.wkWebView?.loadHTMLString(_desiredHTML, baseURL: NSBundle.mainBundle().bundleURL)

第 5 步。调用 WKWebView 中包含的 javascript 中存在的方法

objective-C :

    NSString *callMethod = [NSString stringWithFormat:@"existingMethodWithParam(%@)", stringParam];

[_wkWebView evaluateJavaScript:callMethod
completionHandler:^(id obj, NSError *error) {

if (error)
{
NSLog(@"ERROR evaluating JavaScript - %@", error);
}
else
{
NSLog(@"Returned value - %@", obj); //if the javascript method has a return type
}
}];

swift :

    let callMethod = String(format: "existingMethodWithParam(%@)", stringParam)

[self.wkWebView?.evaluateJavaScript(callMethod, completionHandler: { (obj, error) -> Void in

println(obj)
println(error)
})]

关于javascript - 在 webview 中加载本地 javascript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32582198/

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