在 UIWebview 的 didStartLoad 方法中注入 JS

Posted

技术标签:

【中文标题】在 UIWebview 的 didStartLoad 方法中注入 JS【英文标题】:Injecting JS in UIWebview's didStartLoad methoad 【发布时间】:2015-01-08 10:29:06 【问题描述】:

在我的 UIWebView 中注入 javascript 时遇到一个奇怪的问题。我能够将JS字符串注入 UIWebView webViewDidStartLoad 方法第一次。当 location.reload()html 页面再次触发时,JS 不再从 UIWebView webViewDidStartLoad 方法。

加载 UIWebView 后,我可以从 webViewDidFinishLoad 注入它,但我担心它为什么第一次工作而不是在下次重新加载时工作。

- (void)webViewDidStartLoad:(UIWebView *)webView

    NSString *cordovaScript = [NSString stringWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"cordova" ofType:@"js"] encoding:NSUTF8StringEncoding error:nil];
    [webView stringByEvaluatingJavaScriptFromString:cordovaScript];

    // Loading Plugin.js file
    NSString *childWindowScript = [NSString stringWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Plugin" ofType:@"js"] encoding:NSUTF8StringEncoding error:nil];
    [webView stringByEvaluatingJavaScriptFromString:childWindowScript];

【问题讨论】:

【参考方案1】:

我在加载JS时做了一点延迟,如果第二次调用webViewDidStartLoad

【讨论】:

以上是关于在 UIWebview 的 didStartLoad 方法中注入 JS的主要内容,如果未能解决你的问题,请参考以下文章

在 UITableViewCell 中加载 UIWebView 并根据 UIWebview 的内容制作 UITabViewCell 的高度

UIWebView 正在请求位置权限

在(BOOL)webView 中:如何打开在 UIWebView 中单击的 URL 以打开模态 UIWebView

reCAPTCHA 在 iOS 10 UIWebView 中不起作用

MPMoviePlayerController 和 UIWebView

在 UIWebView 中删除网站标题后的间隙