2012-01-23 85 views
1

我有一個電話差距應用程序,可以啓用/禁用動態縮放。該應用程序允許在具有詳細圖表的頁面上縮放,而對於應用程序的其餘部分禁用縮放。 啓用:Phonegap Zoom Level

<meta id="viewport" name="viewport" 
     content="initial-scale=1.0, maximum-scale=3.0, minimum-scale=1.0, user-scalable=yes" /> 

禁用:

<meta id="viewport" name="viewport" 
     content="initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" /> 

我的問題是,它是可能的,用戶可放大,然後去

變焦時使用Meta視標籤改變禁用縮放的頁面。在這裏他們將被鎖定在放大的水平。

我發現如何發現問題就在這裏:

Safari iPhone - How to detect zoom level and offset?

但是,有沒有辦法編程,最好在JavaScript中(保持不定製工作的PhoneGap的應用程序跨平臺),設置縮放級別? (目前我正在刷新文檔,這很有效,但它可能是處理它的最慢的方法)

回答

1

關於Android,您可以通過編程方式從本地代碼(Java)直接訪問WebView對象更改縮放比例。

如:

appView = (WebView) findViewById(R.id.appView); 
appView.setInitialScale((int)globalScale); 
appView.getSettings().setSupportZoom(true); 
appView.getSettings().setDefaultZoom(WebSettings.ZoomDensity.FAR); 
appView.getSettings().setUseWideViewPort(true); 
... 

如果需要觸發從JavaScript我可以建議編寫自己的PhoneGap插件變焦修改(這不是太硬),其結合javascript代碼到本機代碼直接訪問到的WebView目的。

請記住,我認爲您應該避免爲HTML的元標記指定額外的屬性,否則它們可以覆蓋WebView設置。把剛纔

<meta name="viewport" content="target-densitydpi=device-dpi"> 
+0

謝謝發佈,但我正在尋找一種方法來控制放大javascript,以便我不必重做代碼/項目的Android和IOS。 – leech

+0

這不是我正在尋找的東西(它當然不能用於IOS),但它確實解決了Android中的問題。在android中,你必須做一個定製的生成。 – leech

+0

webview.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);全屏幕 – letroll