如何调整Maxpreps HTML小部件的大小以适应UIWebView?

时间:2016-01-03 18:10:45

标签: ios swift webview

我正在尝试在我的应用中使用Maxpreps小部件(http://www.maxpreps.com/widgets/createwidget.aspx)来显示学校体育更新。 我在xcode中创建了一个html文件并粘贴了Maxpreps提供的代码。我创建了一个webview并在视图控制器上使用了代码。

    @IBOutlet weak var sportsTest: UIWebView!

    sportsTest,loadRequest(NSURLRequest(URL: NSURL(fileURLWWithPath: NSBundle.mainBundle().pathForResource("widgetcode", ofType: "html")!)))

问题在于显示代码时它不适合UIWebView。

1 个答案:

答案 0 :(得分:1)

您在UIWebView中不适合使用的HTML问题并不容易解决,但我可以为您提供一个可以在屏幕上显示内容的黑客。

问题在于,从其小部件中的URL加载的Maxpreps网页并未设计为完全适合iPhone的纵向方向。但它是一个响应式HTML页面,所以这是个好消息。

首先,您不需要加载脚本标记或编写HTML文件,因为所有这些都是您需要点击的链接,对吧?你不想要那个链接,你想要链接背后的内容,对吧?希望!

此视图控制器实现应该可以正常工作:

import UIKit

class ViewController: UIViewController {

    @IBOutlet var webView: UIWebView!

    override func viewDidLoad() {
        super.viewDidLoad()
        // This will force the UIWebView to downscale and fit your page, but
        // it is hacky because 91% of original size might not always be the
        // right amount.  This is why I said it is hard.
        self.webView.scrollView.minimumZoomScale = 0.3
        self.webView.scrollView.maximumZoomScale = 2.0
        self.webView.scrollView.setZoomScale(0.91, animated: false)
    }

    override func viewWillAppear(animated: Bool) {
        if let url = NSURL(string: "http://www.maxpreps.com/local/team/home.aspx?gendersport=boys,baseball&schoolid=45823724-55bc-4d89-926b-b1974b3d8e36") {
            let request = NSURLRequest(URL: url)
            webView.loadRequest(request)
        }
        else {
            println("Failed to create URL")
        }
    }
}

上述工作,但恕我直言的更好解决方案:

1)要求Maxpreps修复其响应式HTML页面,使其以纵向方式呈现在iPhone上

2)完全抛弃HTML并使用REST API查询所需信息(如果它们可用),然后编写本机非HTML屏幕

3)尝试获得有效的动态扩展解决方案。根据我的经验,这些很容易失败

Here is what I see on my simulator when I run it:   Another example: