[已解决]Swift中创建页面显示网址链接的网页内容

 [背景]
Swift中需要,创建一个新的页面,去显示一个已有链接地址的网页内容。
[折腾过程]
1.搜:
swift show web page from url
参考:
去试试:
        let webView = UIWebView()

        let requestURL = NSURL(fileURLWithPath: REGISTRATION_AGREEMENT_URL)
        let request = NSURLRequest(URL: requestURL)
        webView.loadRequest(request)
        self.view.addSubview(webView)
结果是可以编译通过了,但是又出现:
然后虽然还没解决上面问题,但是此处的代码,却验证了没有起效果,没有显示网页
2.
去换用:
WKWebView
试试:
结果不存在。。

3.换成:

        let webView = UIWebView()
self.view.addSubview(webView)let requestURL = NSURL(fileURLWithPath: REGISTRATION_AGREEMENT_URL)
letrequest =NSURLRequest(URL: requestURL)
        webView.loadRequest(request)
import UIKit
import WebKit

class RegistrationAgreementController : UIViewController {
    var webView: WKWebView?

//    init() {
//        super.init(nibName: nil, bundle: nil)
//    }
//
//    required init?(coder aDecoder: NSCoder) {
//        super.init(coder: aDecoder)
//    }

    override func viewDidLoad() {
        super.viewDidLoad()
...
        let webView = UIWebView()
        self.view.addSubview(webView)

        let requestURL = NSURL(fileURLWithPath: REGISTRATION_AGREEMENT_URL)
        let request = NSURLRequest(URL: requestURL)
        //webView.loadRequest(request)
        self.webView!.loadRequest(request)
    }

    override func loadView() {
        super.loadView()

        self.webView = WKWebView()
        self.view = self.webView!
    }
结果:
屏幕是白屏:
swift show blank web page
调试好多次,最终把改代码为:
import UIKit
import WebKit

class RegistrationAgreementController : UIViewController {
    var webView: WKWebView?

    override func viewDidLoad() {
        super.viewDidLoad()

        let requestURL = NSURL(string: "http://www.baidu.com")
        let request = NSURLRequest(URL: requestURL!)
        self.webView!.loadRequest(request)
    }

    override func loadView() {
        super.loadView()

        self.webView = WKWebView()
        self.view = self.webView!
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()

    }
}
 效果是:
ios emulator can show baidu page
5.然后再去想办法:
6.然后再去把顶部的导航加上,变成:
import UIKit
import WebKit

class RegistrationAgreementController : UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
。。。
        let curHeight = statusView.frame.height + tabbgView.frame.height

        let webView = WKWebView()
        webView.frame = CGRectMake(0, curHeight, self.view.frame.size.width, self.view.frame.size.height - curHeight)
        let requestURL = NSURL(string: REGISTRATION_AGREEMENT_URL)
        let request = NSURLRequest(URL: requestURL!)
        webView.loadRequest(request)

        self.view.addSubview(webView)
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()

    }
}
效果:
can show webpage but text size small
很明显,文字太小,所以再去优化:
7.但是结果字体没有解决。
所以,算了,暂时去换用UIWebView看看:
[总结]
最终用UIWebView可以正常显示网页内容了。
代码详见:


发表评论

电子邮件地址不会被公开。 必填项已用*标注

无觅相关文章插件,快速提升流量