假设我正在将url加载到webView中,它看起来像:
但是我想从这个网址中删除一些不需要的东西,如:
我在互联网上搜索了很多但没有找到任何帮助。但我认为我必须在加载到webView之前从HTML视图中删除一些标记。但我不知道该怎么做。
是否可能,如果是,那么我该如何执行此操作?
请帮助我。
答案 0 :(得分:7)
我找到了问题的解决方案,THIS教程帮助了我很多。
如本教程所示,这是将自定义HTML视图加载到webView
的分步示例。
字符串中的Web视图:
有几种方法可以使用Web视图。在归因于字符串之前,这是获取格式化文本的唯一方法。开发人员将在HTML中编写一串文本,并使用方法loadHTMLString将其发送到UIWebview。将viewDidLoad方法更改为:
overridefuncviewDidLoad() {
super.viewDidLoad()
letmyHTMLString:String! = "<h1>Hello Pizza!</h1>"
myWebView.loadHTMLString(myHTMLString, baseURL: nil)
}
第3行生成一个可选字符串,因为loadHTMString方法需要一个。第4行加载字符串,并有第二个参数baseURL,它设置HTML的基本URL路径。通常我们将其设置为nil,但是如果你想要加载像图像或样式表的文件,这将给出文件的默认路径。 构建并运行:
这很无聊,所以让我们添加一些HTML代码,用这个替换字符串,所有这些都没有分页符。
letmyHTMLString:String! = "<h1 style=\"font-family: Helvetica\">Hello Pizza</h1><p>Tap the buttons above to see <strong>some cool stuff</strong> with <code>UIWebView</code><p><img src=\"https://apppie.files.wordpress.com/2014/09/photo-sep-14-7-40-59-pm_small1.jpg\">"
你会注意到我们使用Quote转义序列的几个地方。我们需要在几个pplaces中添加引号,反斜杠后跟一个引号允许我们在一个字符串中这样做。构建并运行。这是一个好一点:
来自文件的Web视图和CSS:
尝试使用字符串格式化的东西并不容易。如果我们将HTML放在一个单独的文件中,我们的工作会更容易。更好的是外部样式表。点击键盘上的Command-N或从下拉菜单中选择文件&gt;新建&gt;文件...以创建新文件。通过转到iOS下的“其他”并清空来创建一个空白文件。
单击“下一步”,然后将文件命名为myHTML.html。保存文件。在空白文件中添加以下代码:
<!--<DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<!-- Based on lesson from http://www.w3.org/Style/Examples/011/firstcss -->Hello Pizza Home
<!-- Site navigation menu -->
<div class="navbar">
<a href="index.html">Home</a>
<a href="musings.html">Toppings</a>
<a href="town.html">Crust</a>
<a href="links.html">Ovens</a>
</div>
<div class="content">
<!-- Main content -->
<h1>Hello Pizza!</h1>
This is a site for the love of all things pizza!
But we are not just pizza, we are with anything on a flatbread. So look around and you will find naan, flatbreads, pitas and tortilla related stuff too!!!
If that is not enough, check our sister site <a href="pie">Hello Pie</a>
<img src="https://apppie.files.wordpress.com/2014/09/photo-sep-14-7-40-59-pm_small1.jpg" alt="" />
<!-- Sign and date the page, it's only polite! -->
</div>
<address>Made 27 October 2012
by makeapppie.com.</address>
返回ViewController.swift文件,将helloPizza方法更改为:
@IBAction func helloPizza(sender: UIBarButtonItem) {
let myURL = NSBundle.mainBundle().URLForResource("myHtml", withExtension: "html")
let requestObj = NSURLRequest(URL: myURL!)
myWebView.loadRequest(requestObj)
}
第2行为myHTML.html创建了一个名为main bundle的url。主包是我们将所有代码文件放在XCode中用于特定项目的目录。主捆绑包根据设备更改位置。我们使用这个相对指标而不是给出文字路径。第3行创建了一个NSURLRequest,这是我们在第4行的loadRequest方法中提供的对象.loadRequest将HTML代码加载到UIWebView中。构建并运行它。点击披萨按钮即可获得:
这个视图不是那么漂亮,但我们可以添加一些CSS来清理它。像以前一样创建另一个空白文件,命名为myCSS.css并将以下内容添加到新文件中:
body {
color: #eeeeee;
background: #a0a088;
font-family:Helvetica}
h1 {
color: #dd1111;
font-family:Chalkduster;
font-size: 18pt}
a{
font-family:Helvetica;
font-weight: bold;
color: #ffffaa;
text-decoration:none;
padding-left: 5px;
}
img{
padding-left:0;
max-width: 90%;
max-height: 90%;
box-shadow: 3px 3px 3px 0px #202020
}
.navbar {
background-color: #000000;
color: white;
position: absolute;
top: 0em;
left: 0em;
width: 100% }
.content{
padding-left: 1em;
padding-top: 1em;
}
myHTML.Html中的HTML代码假定baseURL是捆绑包。构建并运行,我们可以获得更好的格式化Web视图:
现在通过这个示例,我可以从浏览器中复制页面源,然后我可以将HTML代码粘贴到我的HTML文件中,我可以进行更改,就像我可以从该HTML代码中删除不需要的标记,稍后我可以加载此HTML进入webView
。