最新消息:服务器现已从linode换到fzhost.net,且主题已从retina 0.2换为大前端D8

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

Swift crifan 9浏览 0评论
 [背景]
Swift中需要,创建一个新的页面,去显示一个已有链接地址的网页内容。
[折腾过程]
1.搜:
swift show web page from url
参考:
ios – Swift – open web page in app, button doesn’t react – Stack Overflow
UIWebView example using swift in ios – Source Freeze
Webview Tutorial in iOS8 with Swift – iOScreator
去试试:
        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)
结果:
没用。
4.参考:
添加:
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可以正常显示网页内容了。
代码详见:

转载请注明:在路上 » [已解决]Swift中创建页面显示网址链接的网页内容

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
55 queries in 0.491 seconds, using 12.41MB memory