2013-09-23 95 views
2

是否有可能以編程方式重置用戶在web視圖中完成的縮放比例?我的問題是當Webview是捏放大景觀和你旋轉手機,web視圖中,在我的案件仍在放大,肖像模式現在非常的放大。鈦 - 在webview中重置縮放比例

我試過webview.repaint()但似乎做絕對沒有。我知道我可以撥打webiew.reload(),但這只是爲我的服務器和用戶數據計劃使用更多的帶寬,所以我想避免這種情況。我使用Titanium Studio, build: 3.1.3.xxx,3.1.3 GA Ti SDK和編譯爲iOS 7 SDK

回答

4

基於這一主線,沒有辦法輕鬆實現這樣一個事實,我創建了一個模塊。它用兩種方法擴展Ti.UI.WebView,setZoomLevel()scrollToTop()。目前這是非常基礎的,但我正在計劃逐步擴展其功能。

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

看一看,這是在修改核心代碼的替代品。

+0

不錯,你是否做到了這一點?我會編一個模塊,但是我認爲編輯內核會更直接,更容易。在我的情況下,它暫時是 – Ronnie

+0

是的,改變核心確實更容易,但我認爲與下一次SDK更新的修改可能會消失。無論如何,我想進入這個模塊的東西,所以這是一個很好的起點;) – mwfire

+0

是的,它肯定會消失,接下來的SDK更新,我將不得不在我們的下一個應用版本中使用這個模塊。我們剛剛提交了一個更新,昨天 – Ronnie

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視圖做將被重置回無或1