我知道这个问题已经多次发布了。但他们都没有帮助我解决我的问题。请在downvote之前考虑阅读整个问题: - )
所以,因为我有以下代码行
- (void)viewDidLoad {
[super viewDidLoad];
NSURL * url = [NSURL URLWithString: @"https://www.w3schools.com/code/tryit.asp?filename=FEGU9IV4SAK8"];
NSURLRequest * request = [NSURLRequest requestWithURL:url];
self.webView.delegate = self;
[self.webView loadRequest:request];
}
#pragma mark - UIWebView Delegates
- (void) webViewDidFinishLoad:(UIWebView *)webView {
NSString * jsString = [NSString stringWithFormat:@"test()"];
[webView stringByEvaluatingJavaScriptFromString:jsString] ;
//This code is working. Able to prompt "Hello"
// jsString = [NSString stringWithFormat:@"alert('Hello');"];
// [webView stringByEvaluatingJavaScriptFromString:jsString] ;
}
- (BOOL)webView:(UIWebView *)webView
shouldStartLoadWithRequest:(NSURLRequest *)request
navigationType:(UIWebViewNavigationType)navigationType;
{
// ignore legit webview requests so they load normally
if (![request.URL.scheme isEqualToString:kSchemeName]) {
return YES;
}
// look at the actionType and do whatever you want here
if ([actionType isEqualToString:kJSActionForPay]) {
//Call objective-c method - Success
}
// make sure to return NO so that your webview doesn't try to load your made-up URL
return NO;
}
所以,我已经尝试/理解了。
[1]仅在加载Web视图后调用JS函数。 (使用过的代表)
[2]能够从
提示“你好” [webView stringByEvaluatingJavaScriptFromString:@"alert('Hello')"] ;
[3]在HTML方面进行的更改
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
</head>
<body>
<h1 id="id1">My Heading 1</h1>
<button type="button"
onclick="document.getElementById('id1').style.color = 'red'">
Click Me!</button>
</body>
<script>
function test() {
alert("Started");
}
</script>
</html>
请帮助找出我在HTML方面缺少的内容?还是在我的家乡Objc?
编辑1 : 正如@Andy建议的那样,我从本地加载了html。然后我可以调用JS函数“test()”
答案 0 :(得分:0)
您不应该使用w3schools编辑器作为项目的源html。您尝试访问的url
不仅包含您的内容,还包含w3schools使用的脚本。相反,您应该将您的html文件放在您自己的服务器上或项目中的.html文件中。然后,您可以调用test()
方法。