I'我正在尝试将JavaScript加载到我的UIWebView中

I'm trying to load JavaScript into my UIWebView

本文关键字:加载 JavaScript 我的 UIWebView      更新时间:2024-05-27

我正在尝试将JavaScript加载到UIWebView中。以下是我的代码:

- (void)viewDidLoad
{
    [super viewDidLoad];
    NSString *path = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"];
    NSURL *url = [NSURL fileURLWithPath:path];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [webview loadRequest:request];
}
-(void)webViewDidFinishLoad:(UIWebView *)webView{
    NSString *javascript = [[NSString alloc] initWithContentsOfFile:@"script.js" encoding:NSUTF8StringEncoding error:nil];
    [webView stringByEvaluatingJavaScriptFromString:javascript];
}

我是不是做错了什么?web视图完成加载,所以我认为我对Javascript做了错误的处理。

如果我正确理解您的问题,那么您正在尝试将JavaScript加载到UIWebView中。[UIWebView字符串ByEvaluatingJavaScriptFromString]用于执行已加载在UIWebView中的函数。

为什么不在本地index.html文件中包含script.js,然后使用[UIWebView字符串ByEvaluatingJavaScriptFromString]调用script.js中定义的函数?

如果我误解了你的问题,请告诉我。

你好!!

这是我的答案。这是我的工作代码。创建JSLibraries物理文件夹。将其添加到您的项目中。复制您的abc.js文件。

 - (void) addJSLibraryToHTML
{
    NSURL *jqueryLibPath =[[NSBundle mainBundle] URLForResource:@"abc" withExtension:@"js" subdirectory:@"/JSLibraries" ];
    NSString *offlineJqueryLib = [NSString stringWithFormat:@"function addJquery()"
                                  "{"
                                  "function loadScript(url, callback)"
                                  "{"
                                  "var script = document.createElement('script');"
                                  "script.type = 'text/javascript';"
                                  "script.onload = function () {"
                                  "callback();"
                                  "};"
                                  "script.src = url;"
                                  "(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(script);"
                                  "}"
                                  "if(window.jQuery===undefined)"
                                  "{"
                                  "loadScript('%@', function ()"
                                  "{"
                                  "//do call back to your native method from here"
                                  "});"
                                  "}"
                                  "} ; addJquery();",jqueryLibPath.absoluteString];
    [self stringByEvaluatingJavaScriptFromString:offlineJqueryLib];
}