`
iame
  • 浏览: 131639 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

UIWebView如何触发其中的Web页面的Orientation事件?

    博客分类:
  • ios
阅读更多

最近在用sencha touch在iOS上试着开发一些native-like应用,遇到不少问题,其中之一就是通过UIWebView加载web页面时,如果转动屏幕,里面的Web页面不会自动适配高宽,但是用Safari浏览时却是可以的。

 

用Safari的Web检查器查看sencha touch生成的页面,发现sencha touch控件生成的HTML元素,都是指定了width/height的,当转动屏幕时,如果只是UIWebView转动,而不重新计算这些HTML元素的width/height,就会导致上述问题。

 

google了一下,这篇文章 中说Safari中之所以可以自动适配sencha touch产生的HTML元素,是由于Safari在转动屏幕时,会触发document的orientationchange事件,从而sencha touch可以捕获这个事件,重新计算控件产生的HTML元素的高宽,达到自动适配的目的。而UIWebView的orientation是你自己的程序处理的,你也要在获取orientation事件时告诉web的document,方法就是通UIWebView.stringByEvaluatingJavaScriptFromString。但具体如何触发呢?

 

就是给document产生一个orientationchange事件,剩下的由sencha touch处理好了(sencha touch的所有控件都可以响应这个事件重新计算高宽)。

 

示例代码:

//add by iame
var e = document.createEvent('Events');
e.initEvent('orientationchange', true, false); 
document.dispatchEvent(e);
 

不需要设置具体是landscape,portrait,只需要设置事件名称对就好了。sencha touch会在处理事件时,自动判断是landscape,还是portrait。

 

 

0
0
分享到:
评论

相关推荐

    UIWebView的使用代码

    之前提到UIWebView使用一个UIScrollView对象来关联web页面的内容,通过UIWebView的scrollView属性即可获得该对象,默认情况下网页长度超出设备视口长度后页面会滚动,用户使用手指滚动页面到页面边距并放开手指后...

    UIWebView原生与H5交互

    1. `loadHtmlCssJsDemo-master`可能是一个示例项目,包含了如何在`UIWebView`中加载包含HTML、CSS和JavaScript的页面,并演示了如何处理页面间的跳转和交互事件。 2. 页面跳转方式: - `window.location.href`:...

    UIWebView与 javascript的交互

    描述中的“一个简单的demo实现了对html页面上简单事件的响应”可能指的是在HTML页面中通过JavaScript监听事件(如点击按钮),然后调用`window.location.href`或`window.webkit.messageHandlers`来触发UIWebView的...

    UIWebViewDemo

    4. **返回上页功能**: 要实现"返回上页"的功能,需要保存每个页面的`UIWebView`的历史记录。当用户点击“返回”按钮时,调用`goBack()`方法: ```swift if webView.canGoBack { webView.goBack() } ``` 5. **在...

    UIWebView和js交互

    在提供的`WebView_JS`文件中,可能包含一个简单的HTML页面,用于演示如何在UIWebView中加载H5页面,并实现基本的JavaScript与原生代码交互。通过分析这个示例,开发者可以更直观地了解上述概念。 总之,UIWebView...

    iPhone开发之UIWebView示例程序

    在iOS应用开发中,UIWebView是一个非常重要的组件,它允许开发者在应用程序内嵌入网页内容,实现网页浏览功能。...在压缩包中的"Web"文件可能是包含HTML示例页面或其他相关资源,供你在UIWebView中加载和测试。

    IOS UIWebView Demo

    例如,`webViewDidStartLoad:`方法会在页面开始加载时被调用,`webViewDidFinishLoad:`则在加载完成后触发。 5. **JavaScript交互**:UIWebView支持与JavaScript的交互,你可以通过`...

    网页视图 UIWebView

    其中,`canGoBack`和`canGoForward`属性分别表示是否可以回退和前进到历史浏览记录中的页面。`webViewDidStartLoad:`和`webViewDidFinishLoad:`是两个重要的代理方法,分别在网页开始加载和加载完成时被调用,便于...

    UIWebView使用

    1. 初始化:UIWebView可以通过初始化方法创建,例如`initWithFrame:frame`,指定一个矩形区域作为web视图的大小。 ```swift let webView = UIWebView(frame: CGRect(x: 0, y: 0, width: view.frame.width, height: ...

    UIWebView的使用

    在iOS开发中,UIWebView是苹果提供的一种非常重要的组件,它允许开发者在应用程序内部嵌入网页内容,实现类似浏览器的功能。这个"UIWebView的使用"示例是一个基础的学习项目,旨在帮助开发者理解如何通过UIWebView...

    UIWebView和js交互demo1

    综上所述,"UIWebView和js交互demo1"项目主要展示了如何在iOS应用中利用UIWebView或WKWebView进行OC与JS的交互,这在实现复杂的混合式应用或者增强原生应用的Web功能时非常有用。通过这种交互方式,开发者可以充分...

    UIWebView与 javascript的交互三

    总的来说,“UIWebView与javascript的交互三”这个教程是一个实用的资源,可以帮助开发者熟练掌握在iOS应用中使用`UIWebView`进行原生代码与Web内容交互的技巧,这对于构建混合式应用或在原生应用中嵌入复杂的Web...

    oc中UIWebView交互 JS交互

    2. UIWebViewDelegate:设置UIWebView的代理,可以监听到JavaScript的某些事件,比如`shouldStartLoadWithRequest`方法,可以捕获到JavaScript发起的URL请求。 三、JavaScript与Objective-C/Cocoa Touch交互 1. ...

    UIWebView+html+css

    通过UIWebView,开发者可以将丰富的Web交互体验引入到原生应用中,而无需离开应用界面。 二、加载HTML内容 1. 创建UIWebView实例:首先,在 storyboard 或代码中创建UIWebView对象,并将其添加到视图层次结构中。 2...

    ios-完美的UIWebView.zip

    然而,UIWebView的缺点在于其内存管理不佳,容易导致内存泄漏,同时JavaScript与原生代码的交互效率较低,且不支持现代Web标准。因此,苹果推荐使用WKWebView,这是WebKit框架中的一个新组件。WKWebView使用了更现代...

    UIWebView Demo代码

    注意,UIWebView会占用大量内存,因为它会缓存页面内容。在不再使用时,记得调用`removeFromSuperview`来移除并释放资源。 8. **WKWebView替代** 从iOS 8开始,苹果引入了WKWebView,它在性能和安全性上优于...

    ios UIWebView使用

    UIWebView的Delegate通常是一个遵循`UIWebViewDelegate`协议的对象,它能监听并处理UIWebView的各种事件,如页面加载开始、完成、失败等。设置Delegate的方法是: ```swift webView.delegate = self ``` 需要...

    Cocos2dx中UIWebView替换为WKWebView

    这是因为WKWebView提供了更好的性能、安全性以及对现代Web标准的支持。 UIWebView是iOS早期提供的一个组件,用于在应用中嵌入网页内容。然而,由于其存在性能和安全问题,Apple推出了WKWebView,它使用WebKit框架,...

    Demo.zip_DEMO_iphone_uiwebview_uiwebview demo_uiwebview video

    "Demo.zip_DEMO_iphone_uiwebview_uiwebview demo_uiwebview video"这个标题暗示了我们正在讨论的是一个关于在iPhone应用中使用UIWebView播放视频的示例项目。 UIWebView是Apple提供的一个类,它是UIKit框架的一...

Global site tag (gtag.js) - Google Analytics