我正在尝试将html文件加载到我的UIWebView中,但它不起作用.这是舞台:我的项目中有一个名为html_files的文件夹.然后我在界面构建器中创建了一个webView,并在viewController中为它分配了一个插座.这是我用来附加html文件的代码:
-(void)viewDidLoad
{
NSString *htmlFile = [[NSBundle mainBundle] pathForResource:@"sample" ofType:@"html" inDirectory:@"html_files"];
NSData *htmlData = [NSData dataWithContentsOfFile:htmlFile];
[webView loadData:htmlData MIMEType:@"text/html" textEncodingName:@"UTF-8" baseURL:[NSURL URLWithString:@""]];
[super viewDidLoad];
}
Run Code Online (Sandbox Code Playgroud)
这不起作用,UIWebView是空白的.我很感激一些帮助.
我使用WKWebView登录网站,现在我想解析网站的HTML.如何在swift中访问网站html?我知道它如何用于UIWebView但不适用于WKWebView.
谢谢你的帮助!
如何获取a的HTML
源代码UIWebView
并将其存储NSString
?
我一直在测试一个iPhone视图控制器,它使用UIWebView加载外部内容,而不是项目包中的资源.另一位工程师注意到Web视图根本没有缓存,所以我进行了一些研究.一些较旧的问题表明UIWebView无法缓存外部内容.
以前关于UIWebView缓存的SO问题:
这些帖子非常混乱,但我注意到在iOS 4.0问世之前他们都被问到了.我测试了以下缓存方法,这看起来很简单.
NSURLRequest *request = [NSURLRequest requestWithURL:myUrl
cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:30];
[webView loadRequest:request];
Run Code Online (Sandbox Code Playgroud)
这似乎在iOS 4.3上运行良好,但在iOS 3.0上根本不起作用.我通过将设备指向Charles代理(在iPhone上,设置 - > WiFi,手动代理)并将流量记录到我的服务器来测试.
UIWebView是否开始在iOS 4.0中观察缓存策略?任何人都可以证实这一点,还是我想象的事情?
我试图在WkWebView中显示我之前下载并存储在String中的html页面.
这就是我设置WkWebView的方法:
webView = WKWebView(frame: self.blankView.frame)
webView.navigationDelegate = self
webView.loadHTMLString(tipShow.htmlString!, baseURL: nil)
view.addSubview(webView)
Run Code Online (Sandbox Code Playgroud)
我想要显示的html字符串是:
<html> <style type="text/css"> * { -webkit-touch-callout: none; -webkit-user-select: none; /*
Disable selection/copy in UIWebView */
}
</style> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,
initial-scale=1">
<title>TITLE</title>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.css">
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> <script
src="http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.js"></script> </head>
<body>
<div data-role="page" id="page1">
<div align=justify style="margin-left:20px; margin-right:20px">
<font size="4.5" face="HelveticaNeue-Light"><br>
<p>
THIS IS A TEST
</p>
</div> </div>
</body></html>
Run Code Online (Sandbox Code Playgroud)
当WkWebView在我的视图中显示时,它就像这样永远.
有人可以解释一下为什么以及如何解决这个问题?
我必须开发一个电子商务移动应用程序.为了将产品展示到应用程序中,我必须使用指向移动网站的webview.与每个产品相关联的是"添加到购物篮"按钮.此按钮也是移动网站的一个元素.在移动应用程序的标签栏中(而不是在webview中),有一个篮子的图标,其中包含篮子的元素数量.webview如何知道用户已将一个或多个元素添加到购物篮并将此信息发送到可以更新购物篮图标的原生移动应用程序?
我知道最近在iphone sdk中引入了一些缓存类,并且还有来自three20库的TTURLRequest,它允许您将请求缓存到URL.但是,因为我通过调用UIWebView的loadRequest在UIWebView中加载网页,所以这些技术并不适用.
任何想法如何保存网页,以便在下一个应用程序启动时,我不必再从网页上获取完整页面?页面本身已经有一些ajax机制,可以自动更新部分内容.
我正在尝试构建一个具有一个UIWebview的iPad应用程序.内容在asp.net中.现在一个主要要求是我的应用程序应该支持离线模式.
首先,我尝试查看Html5缓存清单但是根据这个SO答案它不适用于UIWebview
然后我尝试搜索UIWebview可用的缓存机制,我发现很多关于SO的问题(This,This,This,This)但是没有得出结论或者在这种情况下可能是老的.
我的基本要求是哪个页面用户浏览应该获得缓存(html,css,js.images),下次当用户访问同一页面时应该从缓存中传递.
所以我的问题是
1)如何使用Html5缓存清单或UIWebview缓存来实现这一点
2)我的应用程序使用了大量的图像,其中一些是以MB为单位,因此有任何大小限制
我真的很感激,如果有人可以提供完整的教程参考.谢谢.
**更新:**我可以一起利用本地磁盘缓存(用于图像)和html5本地存储(用于数据)吗?如果是,那么我如何提供本地图像路径.
我在我的UIWebView中加载HTML.现在我希望用户允许编辑此HTML.基本上它是一个电子邮件功能,我的身体是HTML格式,所以我渲染它是一个工作正常的UIWebView.现在,如果用户想要回复此邮件,我想让他能够编辑HTML格式的正文.我读了一些关于HTML 5内容可编辑属性的内容,但这似乎没有帮助.如何使用UIWebView完成它?我见过实现此功能的本机iphone邮件客户端.
如果没有其他办法,我被迫使用MFMailComposeViewController,我可以使用MFMailCompose View控制器将邮件发送到我自己的服务器或任何服务器吗?
我正在将应用程序生成的内容放入其中UIWebView
,并尝试测试我是否正确执行此操作.这是我在Web视图中添加的HTML字符串:
@"<html><head></head><body><p>Come, let me clutch thee. I have thee not, and yet I see thee still. Art thou not, fatal vision, sensible to feeling as to sight?</p></body></html>"
Run Code Online (Sandbox Code Playgroud)
然后它进入Web视图:
[self.webView loadHTMLString: [self HTMLStringForSnippet: model.body] baseURL: nil];
Run Code Online (Sandbox Code Playgroud)
其中model.body
只包含<p/>
元素,并将其-HTMLStringForSnippet:
包装到格式良好的HTML中.在我的测试中,我依靠这个问题的答案来通过JavaScript检索正文的HTML内容:
- (void)testCorrectHTMLLoadedInWebView {
UIWebView *bodyView = controller.webView;
NSString *bodyHTML = [bodyView stringByEvaluatingJavaScriptFromString: @"document.body.innerHTML"];
STAssertEqualObjects(bodyHTML, model.body, @"Model body should be used for the web view content");
}
Run Code Online (Sandbox Code Playgroud)
虽然我可以通过单步执行UIWebView
正确创建的代码并传递正确的HTML -loadHTMLString:baseURL:
,但在测试中bodyHTML …
我希望用户能够从网站导入数据,而不会泄露我的应用程序太多,例如存储StackOverflow问题.(这不是真正的StackOverflow问题,但是你得到了这个想法,这些东西不是从服务器发送的,而是以我的应用程序的格式提供数据).
我最基本意义上的问题是,我可以在UIWebView中访问用户访问的当前页面中的内容(在我的应用程序中,按下按钮),并扫描关键字并提取文本吗?
在人们开始询问之前,这样做的目的是通过允许用户从互联网上获取我们应用程序的内容来摆脱切换的障碍,因为我自己无法提供足够的内容.
如果这是不可能的,那么我的应用程序是否可以直接从服务器请求页面,而不是通过UIWebview(在用户在UIWebview中找到页面后)并获得要处理的源代码的副本?
谢谢你的帮助!
iphone ×7
uiwebview ×6
ios ×5
html ×3
caching ×2
objective-c ×2
swift ×2
wkwebview ×2
android ×1
cocoa-touch ×1
html5 ×1
ios4 ×1
ios9 ×1
ipad ×1
native-code ×1
nsurlrequest ×1
ocunit ×1
offline ×1
url ×1
webview ×1