是否可以以编程方式重置用户在Webview中完成的缩放/缩放?我的问题是当webview在景观中捏缩放并且你旋转手机时,webview仍然放大了,在我的情况下,肖像模式现在非常放大。
我已经尝试了webview.repaint()
,但这似乎绝对没有。我知道我可以拨打webiew.reload()
,但这只会为我的服务器以及用户数据计划使用更多带宽,所以我想避免这种情况。
我正在使用Titanium Studio, build: 3.1.3.xxx
,3.1.3 GA Ti SDK
并正在为iOS 7 SDK
进行编译。
答案 0 :(得分:4)
基于这个线程以及无法轻松实现这一点的事实,我创建了一个模块。它使用两种方法setZoomLevel()
和scrollToTop()
扩展了Ti.UI.WebView。目前这是非常基本的,但我正计划逐步扩展其功能。
https://github.com/mwfire/titanium-module-extended-webview
看一下,它可以替代修改核心代码。
答案 1 :(得分:0)
您是否尝试过更改方向时设置webview的scalesPageToFit属性?
http://docs.appcelerator.com/titanium/3.0/#!/api/Titanium.UI.WebView-property-scalesPageToFit
答案 2 :(得分:0)
我发现答案比我想做的要多一些。我必须实际修改Titanium SDK obj-c文件。
我修改了3个文件:
<强> TiUIWebView.h 强>
-(void)resetZoomScale; //-- added this line to define the function in the header file
<强> TiUIWebView.m 强>
//-- Added this function that will actually handle the resize
- (void)resetZoomScale
{
[webview.scrollView setZoomScale:1.0]; //-- reset the scroll view back to 1
}
<强> TiUIWebViewProxy.m 强>
//-- Call the resetZoomScale function in TiUIWebView.m file
//-- I believe this also exposes the function to javascript
-(void)resetZoomScale:()args
{
TiThreadPerformOnMainThread(^{[(TiUIWebView*)[self view] resetZoomScale];}, NO);
}
我现在可以调用myWebView.resetZoomScale();
,无论在网页视图上进行的任何捏合/缩放都将重置为无或1