2

我需要用存储在目标 C 中的变量填充 html webview。

我相信我需要使用:

[self.webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"John", firstName];

但不确定要放什么以及我的javascript需要什么来实现传递的变量。

这是我的 html 的一点点,可以帮助您了解一下:

<ul><li><span>First Name:</span> first name needs to go here</li>
  <li><span>Last Name:</span> last name needs to go here</li>

更新代码:

- (void)viewDidLoad
{
    [super viewDidLoad];

    [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"idcard" ofType:@"html"]isDirectory:NO]]];
}

-(void)viewDidAppear:(BOOL)animated
{
    NSString *str  = @"John";
    NSString *script = [NSString stringWithFormat:@"myFunc('%@')", str];
    [self.webView stringByEvaluatingJavaScriptFromString:script];


}

更新 2: javascript/html:

<ul><li><span>Policy Number:</span>        
<script> function myFunc(str)
        {
            document.write(str)  }
        </script>
4

3 回答 3

5

我最终使用了不同的 js 方法并使用了,希望这对某人有所帮助。

对象 c:

NSString *str  = @"John";
NSString *script = [NSString stringWithFormat:@"document.getElementById('name').innerHTML = '%@';", str];
[self.webView stringByEvaluatingJavaScriptFromString:script];

js:

<li><span>Name:</span>   <span id = 'name'>name goes here</span>
      </li>
于 2013-05-28T13:59:15.960 回答
1

基本上,您需要一个 javascript 方法来将数据添加到 HTML 字符串中。一旦你有了这个函数,向它传递数据就相当简单了,

NSString *script = [NSString stringWithFormat:@"methodName([%@])", data]
[self.webView stringByEvaluatingJavaScriptFromString:script];

并且编写 Javascript 将数据放入 HTML 字符串很容易

于 2013-05-24T16:11:57.587 回答
0

您可以访问代码中的原始 HTML 字符串吗?如果是这样,你能做这样的事情吗?

UIWebView *webview = [[UIWebView alloc] initWithFrame:self.view.bounds];
[self.view addSubview:webview];
NSString *htmlString = [NSString stringWithFormat:@"<html>\
<ul><li><span>First Name:</span> %@</li>\
<li><span>Last Name:</span> %@</li>\
</html>", @"John", @"Smith"];
[webview loadHTMLString:htmlString baseURL:nil];

如果你想使用 JavaScript,这里有一个例子: How to control UIWebView's javascript

于 2013-05-24T16:18:41.600 回答