iOS Swift3.0 UIWebView获取HTML(title,url,body...) stringByEvaluatingJavaScript

本文介绍了如何在iOS Swift3.0中使用UIWebView来创建并实现UIWebViewDelegate,从而获取HTML的title、url和body等信息。通过调用`stringByEvaluatingJavaScript`方法,开发者可以有效地从WebView中提取所需数据。

创建一个WebView

let webView = UIWebView(frame: CGRect(x: 0, y: 0, width: view.bounds.width, height: view.bounds.height))
webView.delegate = self;
view.addSubview(webView)
if let url = URL(string: "https://www.baidu.com") {
    webView.load
### 如何在iOS平台上使用intro.js #### 安装Intro.js库 为了能够在iOS应用中集成`intro.js`,首先需要引入该JavaScript库到项目当中。可以通过下载官方发布的最新版本文件并将其添加至Web资源目录下完成安装。 对于采用CocoaPods管理依赖项的应用程序而言,则可以在`Podfile`里声明对`intro.js`的支持: ```ruby pod &#39;IntroJS&#39;, &#39;~> 2.0&#39; ``` 不过需要注意的是,在实际操作过程中可能无法直接通过上述方式获取`intro.js`,因为这并非是一个标准的 CocoaPod 库。此时建议手动拷贝所需文件或将它们托管在一个可访问的位置以便加载[^1]。 #### 配置UIWebView或WKWebView 由于`intro.js`本质上是一套基于浏览器端运行的交互引导工具集,所以在原生iOS开发环境下需借助于`UIWebView`(已废弃) 或者更推荐使用的 `WKWebView` 来呈现HTML页面以及执行相应的 JavaScript 脚本。 创建一个新的视图控制器用于承载网页容器,并设置其初始URL指向包含有`intro.js`初始化逻辑的本地 HTML 文件路径: ```swift import WebKit class IntroViewController: UIViewController { var webView: WKWebView! override func viewDidLoad() { super.viewDidLoad() let webConfiguration = WKWebViewConfiguration() webView = WKWebView(frame:.zero, configuration:webConfiguration) view.addSubview(webView) if let url = Bundle.main.url(forResource:"index", withExtension:"html") { webView.loadFileURL(url, allowingReadAccessTo:url.deletingLastPathComponent()) } } } ``` 确保所引用的HTML文档已经正确设置了`<script>`标签来导入必要的外部脚本资源,例如jQuery(如果必要的话) 和 intro.min.js 自身。 #### 初始化与调用Intro.js API 一旦完成了以上准备工作之后就可以按照常规流程启动教程模式了。通常情况下只需要简单地调用一次全局命名间下的`introJs()` 函数即可触发整个过程;当然也可以传递额外参数来自定义行为特性,比如指定要高亮显示的目标元素列表等。 下面给出了一段示范性的代码片段展示了如何利用内联样式表配合数据属性的方式标记出待解释的对象区域: ```html <!-- index.html --> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"/> <title>Document</title> <link href="./assets/introjs.css" rel="stylesheet"/> <style type"text/css"> /* Add custom styles here */ .step-element { position:relative; padding-bottom:5px;} </style> <script src="./assets/jquery.slim.min.js"></script> <script src="./assets/intro.min.js"></script> <body> <div id="tutorial-container"> <button class="step-element"data-step="1" data-intro="This button starts our interactive guide." onclick="startTour()">Start Tour!</button> <input type="text"class="form-control step-element" placeholder="Enter text..." data-step="2" data-intro="Type something into this field."/> </div> <script type="application/javascript"> function startTour(){ introJs().setOption(&#39;doneLabel&#39;,&#39;Finish&#39;).start(); } // Optionally call tour automatically after page load. window.onload=startTour; </script> </body> </html> ``` 这段示例中的按钮点击事件处理器会激活一个两步式的向导界面,其中每一步都关联到了特定DOM节点上预先设定好的描述信息。当用户依次浏览过所有提示框后可以选择结束体验返回正常状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值