このトピックについてはすでにいくつかの議論があったことは知っていますが、ここでは別のアプローチを試みています。最初に Webview に変数を挿入し、次にその変数のメソッドを呼び出して出力を取得しようとしています。手順は次のとおりです。
webview = [[UIWebView alloc] initWithFrame:window.bounds];
[window addSubview:webview];
[webview loadHTMLString:@"<html><head><script>(function() {var myVariable = window.myVariable = {};"
@"myVariable.getVersion = function() {return 1;}})();"
@"</script></head></html>"
baseURL:nil];
webview.delegate = self;
- (void)webViewDidFinishLoad:(UIWebView *)webView {
if ([[webView stringByEvaluatingJavaScriptFromString:@"typeof(myVariable);"] isEqualToString:@"object"]) {
NSLog(@"version=%@",[webView stringByEvaluatingJavaScriptFromString:@"myVariable.getVersion());"]);
} else {
NSLog(@"failed the test.");
}
}
出力: version=