我正在尝试在我的应用中使用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。
答案 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: