Swift   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了[Swift通天遁地]一、超级工具-(5)使用UIWebView(网页视图)加载本地页面并调用JavaScript(脚本)代码大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

本文将演示如何使用UIWebView(网页视图)读取项目中的网页文件,以及执行JavaScript脚本代码。 在项目文件夹【DemoApp】上点击鼠标右键,弹出右键菜单。 【New File】->【Blank】空白模板->【next】 ->【Save As】:register.html->【Create】 在Register.html中输入网页代码: 1 <!DOCTYPE HTML> 2

本文将演示如何使用UIWebView(网页视图)读取项目中的网页文件,以及执行JavaScript脚本代码

在项目文件夹【DemoApp】上点击鼠标右键,弹出右键菜单

【New File】->【Blank】空白模板->【next】

->【Save As】:register.html->【Create】

在Register.html中输入网页代码

 1 <!DOCTYPE HTML>
 2 <html>
 3 <head>
 4     <Meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 5     <title>Registration</title>
 6     <script>
 7         function submitForm()
 8         {
 9             //获得用户名的文本框的值
10             var userName = document.getElementById(userName).value
11             //通过弹出警告窗口的方式,显示文本框的内容
12             alert("The value of user name is : "+userName);
13         }
14     </script>
15 </head>
16 <body>
17     <form id="registerForm" action="form_action.PHP" onsubmit="submitForm()">
18         UserName: <input type="text" id="userName" name="userName"/><br/>
19         password: <input type="password" id="password" name="password"/><br/>
20         <input type="submit" value="Submit"/>
21     </form>
22 </body>
23 </html>

在项目导航区,打开视图控制器的代码文件【ViewController.swift】

通过UIWebView(网页视图)加载上文创建的网页文件,并调用脚本函数

 1 import UIKit
 2 
 3 class ViewController: UIViewController {
 4     
 5     //添加一个网页视图对象,作为当前类的属性
 6     var webView:UIWebView!
 7     
 8     override func viewDidLoad() {
 9         super.viewDidLoad()
10         
11         //获得当前设备的屏幕尺寸信息
12         let bounds = UIScreen.main.bounds
13         //通过屏幕尺寸信息创建一个矩形的显示区域
14         let frame = CGRect(x: 0,y: 40,width: bounds.width,height: bounds.height)
15         
16         //初始化一个网页视图对象,并以矩形区域作为其显示区域
17         webView = UIWebView(frame: framE)
18         //设置网页视图的背景颜色为橙色
19         webView.BACkgroundColor = UIColor.orange
20         //将网页视图添加到当前视图控制器的根视图
21         self.view.addSubview(webView)
22         
23         //获得网页文件项目中的路径
24         let path = Bundle.main.path(forresource: "Register",ofType: "html")
25         //并将路径转换成网址的样式
26         let url = URL(String: path!)
27         //通过网页视图的加载请求方法,加载该网址路径下的网页文件
28         webView.loadrequest(NSURLrequest(url: url!) as URLrequest)
29         
30         //添加一个按钮控件,当按钮被点击时,将获得并打印网页的属性信息
31         let geTinfo = UIButton(frame: CGRect(x: 40,y: 400,width: 240,height: 44))
32         //设置按钮在正常状态下的标题文字
33         geTinfo.settitle("Get the information",for: UIControlState.init(rawValue: 0))
34         //设置按钮的背景颜色为橙色
35         geTinfo.BACkgroundColor = UIColor.orange
36         //给按钮绑定点击事件
37         geTinfo.addTarget(self,action: #SELEctor(ViewController.geTinfo),for: .touchUpInsidE)
38         
39         //添加第二个按钮事件,当按钮被点击时,将设置网页表单的内容,并提交该表单
40         let submitForm = UIButton(frame: CGRect(x: 40,y: 470,height: 44))
41         //设置按钮在正常状态下的标题文字
42         submitForm.settitle("Set and submit form",for: UIControlState.init(rawValue: 0))
43         //设置按钮的背景颜色为橙色
44         submitForm.BACkgroundColor = UIColor.orange
45         //给按钮绑定点击事件
46         submitForm.addTarget(self,action: #SELEctor(ViewController.submitForm),for: .touchUpInsidE)
47         
48         //设置根视图的背景颜色
49         self.view.BACkgroundColor = UIColor.orange
50         //将两个按钮依次添加到当前视图控制器的根视图
51         self.view.addSubview(geTinfo)
52         self.view.addSubview(submitForm)
53     }
54     
55     //添加一个方法,用来获得并打印网页的属性信息
56     func geTinfo()
57     {
58         //通过网页视图的执行脚本命令,执行脚本代码,此脚本代码用来获得网页所对应的网址字符串
59         let url = webView.StringByEvaluaTingJavaScript(from: "document.LOCATIOn.href")
60         //执行第二句脚本代码,此脚本代码用来获得网页的标题信息
61         let title = webView.StringByEvaluaTingJavaScript(from: "document.title")
62         //将获得的相关信息拼接成一个字符串
63         let info = url! + "\n" + title!
64         //在控制台打印输出
65         print(info)
66     }
67     
68     //添加一个方法,用来设置网页表单的内容,并提交该表单
69     func submitForm()
70     {
71         //初始化一个字符串常量,表示一个脚本语句,
72         //该脚本语句用来设置用户名文本框的值。
73         let firstJs = "document.getElementById(‘userName‘).value = ‘jerry‘"
74         //初始化另一个字符串常量,表示一个脚本语句
75         //该脚本语句用来执行指定名称函数
76         let secondJs = "submitForm()"
77         //通过网页视图的执行脚本命令,
78         //依次执行这两条脚本语句。
79         webView.StringByEvaluaTingJavaScript(from: firstJs)
80         webView.StringByEvaluaTingJavaScript(from: secondJs)
81     }
82     
83     override func didReceiveMemoryWarning() {
84         super.didReceiveMemoryWarning()
85         // Dispose of any resources that can be recreated.
86     }
87 }

大佬总结

以上是大佬教程为你收集整理的[Swift通天遁地]一、超级工具-(5)使用UIWebView(网页视图)加载本地页面并调用JavaScript(脚本)代码全部内容,希望文章能够帮你解决[Swift通天遁地]一、超级工具-(5)使用UIWebView(网页视图)加载本地页面并调用JavaScript(脚本)代码所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。