我目前有一个成功加载 html 文件的 web 视图。我这样做的方法看起来像:
- (EmailView *)loadHTMLIntoEmailView:(EmailView *)emailView
{
NSString *path = [[NSBundle mainBundle] pathForResource:@"inlineAttachmentTemplate" ofType:@"html"];
NSData *htmlData = [NSData dataWithContentsOfFile:path];
NSString *resourceURL = [[NSBundle mainBundle] resourcePath];
resourceURL = [resourceURL stringByReplacingOccurrencesOfString:@"/" withString:@"//"];
resourceURL = [resourceURL stringByReplacingOccurrencesOfString:@" " withString:@"%20"];
NSURL *baseURL = [NSURL URLWithString:[NSString stringWithFormat:@"file:/%@//",resourceURL]];
[emailView.webView loadData:htmlData MIMEType:@"text/html" textEncodingName:@"UTF-8" baseURL:baseURL];
return emailView;
}
我拥有的 html 文件如下所示:
<!doctype html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="stylesheet" href="inlineAttachmentTemplateStyling.css">
<script>
function myFunction()
{
document.write("Hello from my html file!!!!");
}
</script>
</head>
<body id="body">
<div id="container">
<img id="testImage" src="fauxImageAttachment2.JPG" />
</div><!-- #container -->
</body>
</html>
这是因为图像出现在 web 视图中。如果我将 document.write 从函数中取出并将其直接放在脚本标签中,则文本会出现在 webview 中。但是,我需要能够调用一个允许文本显示在 webview 中的函数(从我的 Objective C 方法),最终我还需要向这个函数传递一些变量。目前,我什至无法弄清楚如何调用 javascript 函数。
我看了这个例子,你可以使用 PhoneGap 和 iOS 从本机代码(不是在回调中)调用 javascript 函数吗?,并尝试将以下行添加到我的目标 C 方法中:
[emailView.webView stringByEvaluatingJavaScriptFromString:@"myFunction()"];
但这不会调用函数......或者至少文本不会出现在 webview 中。
我是一个新手程序员,对 javascript 知之甚少 - 任何人都可以强调我做错了什么吗?