gpt4 book ai didi

ios - UIWebView 注入(inject)在 webViewDidStartLoad 中隐藏导航栏

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:52:54 27 4
gpt4 key购买 nike

我正在开发一个应用程序,我在其中使用加载 url 的 UIWebView。我想隐藏导航栏(这是第一个 div)所以我实现了以下工作正常:

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
// finished loading, hide the activity indicator in the status bar
[self activityIndicatorAnimate:NO];
[self.browser stringByEvaluatingJavaScriptFromString:@"var script = document.createElement('script');"
"script.type = 'text/javascript';"
"script.text = \"function myFunction() { "
"var b=document.getElementsByTagName('div')[0];b.style.visibility='hidden';"
"}\";"
"document.getElementsByTagName('head')[0].appendChild(script);"];
[self.browser stringByEvaluatingJavaScriptFromString:@"myFunction();"];

NSLog(@"%@", [webView stringByEvaluatingJavaScriptFromString: @"document.all[0].innerHTML"]);

}

事实是,这会在文档加载时执行,因为下载 url 需要时间,所以导航栏在加载时仍然可见。无论如何我可以让它从一开始就隐藏导航栏吗?

注意:如果我在 webViewDidStartLoad 中添加此代码,它不会执行,因为元素尚未加载。

提前致谢

最佳答案

我不知道如何在内容加载结束之前隐藏它,但我正在考虑另一种方法 - 您可以只将本地 html 加载到 webview,然后使用 ajax 加载页面,作为响应ajax,用html做一些事情,然后在你的webview中显示它。要将本地文件加载到您的 WebView ,请检查这些代码 -

NSString *html = [NSString alloc];

html = @"index.htm";
NSBundle *bundle = [NSBundle mainBundle];
NSString *path = [bundle bundlePath];

NSString *fullPath = [NSBundle pathForResource:html ofType:nil inDirectory:path];

NSURL *url = [NSURL fileURLWithPath:fullPath];
url = [url URLByDeletingLastPathComponent];

url = [NSURL URLWithString:@"index.htm?page=1" relativeToURL:url];
NSURLRequest *request = [NSURLRequest requestWithURL:url];


[self.mHtmlViewer loadRequest:request];

请记住通过将 html 拖到项目中来将它们添加到项目中。

关于ios - UIWebView 注入(inject)在 webViewDidStartLoad 中隐藏导航栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9756171/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com