1

我在从 xcode 调用 htmnl 函数时遇到了问题,这里我正在编写 Html 和 Objective-c 的代码,

这是html函数

<script type="text/javascript">
        function load(val)
        {
            alert(val);
            document.getElementById("h_dvid").value=val;
        } 

   </script>

在视图控制器viewdidload中,我像这样调用该函数,

- (void)viewDidLoad
{
    [super viewDidLoad];
    web = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 360)];
    [web loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle]
                                                                          pathForResource:@"index" ofType:@"html"]isDirectory:NO]]];
    [self.view addSubview:web];

    NSString* str=[NSString stringWithFormat:@"load('%@')",@"hi"];

    [web stringByEvaluatingJavaScriptFromString:str];

    web.delegate=self;
    // Do any additional setup after loading the view, typically from a nib.

}

然后我没有调用加载函数,因为 html 文件没有完全加载所以,当我点击那个按钮时我按下了一个按钮然后我调用了 html 函数然后它工作正常。但是我需要调用 HTML 函数viewdidload本身。我等着你的回答。

4

1 回答 1

1

当您调用它loadRequest:UIWebView,它将开始加载 URL。这是异步过程。在这完成之前,调用方法UIWebView不会生效。stringByEvaluatingJavaScriptFromString:

实现该UIWebViewDelegate方法并调用所需的JS函数。

- (void)webViewDidFinishLoad:(UIWebView *)webView {
    NSString* str=[NSString stringWithFormat:@"load('%@')",@"hi"];
    [web stringByEvaluatingJavaScriptFromString:str];
}

希望有帮助!

于 2013-09-10T10:15:58.503 回答