我正在尝试将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做错了。
答案 0 :(得分:0)
如果我正确理解您的问题,您正在尝试将JavaScript加载到UIWebView中。 [UIWebView stringByEvaluatingJavaScriptFromString]用于执行已在UIWebView中加载的函数。
为什么不在本地index.html文件中包含script.js,然后使用[UIWebView stringByEvaluatingJavaScriptFromString]调用script.js中定义的函数?
让我知道如果我误解了你的问题。
答案 1 :(得分:0)
你好!!
这是我的答案。这是我的工作代码。创建一个JSLibraries物理 项目工作区中的文件夹。将它添加到您的project.copy中 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];
}