2

是否可以以编程方式重置用户在 web 视图中所做的缩放/比例?我的问题是当 webview 在横向上捏放大并且你旋转手机时,webview 仍然在放大,在我的情况下,纵向模式现在非常放大。

我已经尝试过webview.repaint(),但这似乎完全没有任何作用。我知道我可以打电话webiew.reload(),但这只会为我的服务器和用户数据计划使用更多带宽,所以我想避免这种情况。

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

4

3 回答 3

4

基于这个线程以及没有办法轻松实现这一点的事实,我创建了一个模块。它使用两种方法扩展了 Ti.UI.WebView,setZoomLevel()并且scrollToTop(). 目前它非常基础,但我正计划逐步扩展它的功能。

https://github.com/mwfire/titanium-module-extended-webview

看看,它是修改核心代码的替代方案。

于 2013-09-26T13:41:31.457 回答
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();了,在 web 视图上进行的任何捏合/缩放都将重置为 none 或 1

于 2013-09-25T17:01:22.450 回答
0

您是否尝试过在方向更改时设置 webview 的 scalesPageToFit 属性?

http://docs.appcelerator.com/titanium/3.0/#!/api/Titanium.UI.WebView-property-scalesPageToFit

于 2013-09-24T10:32:22.150 回答