Titanium - 在webview中重置缩放比例

时间:2013-09-23 23:50:52

标签: titanium appcelerator

是否可以以编程方式重置用户在Webview中完成的缩放/缩放?我的问题是当webview在景观中捏缩放并且你旋转手机时,webview仍然放大了,在我的情况下,肖像模式现在非常放大。

我已经尝试了webview.repaint(),但这似乎绝对没有。我知道我可以拨打webiew.reload(),但这只会为我的服务器以及用户数据计划使用更多带宽,所以我想避免这种情况。

我正在使用Titanium Studio, build: 3.1.3.xxx3.1.3 GA Ti SDK并正在为iOS 7 SDK进行编译。

3 个答案:

答案 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