2012-01-23 10 views
1

私は動的にズームを有効/無効にする電話ギャップアプリを持っています。このアプリでは、詳細な図が表示されているページを拡大表示でき、残りの部分ではズームを無効にすることができます。 が有効::Phonegapズームレベル

<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" /> 

私の問題は、ユーザーがズームインし、その後に行くすることが可能であるということです

ズームメタビューポートタグを使用して変更されますズームが無効になっているページ。ここではズームインされたレベルでロックされます。

私はここでの問題を検出する方法が見つかりました:ズームレベルを設定し、(カスタム作業なしのPhoneGapアプリのクロスプラットフォームを維持するために)

Safari iPhone - How to detect zoom level and offset?

をしかし、プログラム的に、そして好ましくはJavaScriptでの方法があります? (現在、私はドキュメントを更新していますが、動作しますが、おそらくそれを処理する最速の方法です)

答えて

1

Androidについては、WebViewオブジェクトに直接アクセスするネイティブコード(java)からプログラムでズームを変更できます。

例:

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

あなたは私はあなた自身のPhoneGapプラグインを書くことをお勧めでしたJavaScriptからズームの変更をトリガーする必要がある場合(それはあまりにも難しいことではありません)のWebViewに直接アクセスするネイティブコードにJavaScriptコードと結合オブジェクト。

HTMLのメタタグに余分な属性を指定するのは避けてください.WebViewの設定を上書きできるようにしてください。ちょうど

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

ありがとう、私はjavascriptのズームを制御する方法を探していますので、AndroidとIOSのコード/プロジェクトをやり直す必要はありません。 – leech

+0

これはまさに私が探していたものではありませんでしたが(IOSのためにはうまくいかないかもしれませんが)、それはAndroidの問題を解決しました。アンドロイドでは、とにかくカスタマイズされたビルドを作成する必要があります。 – leech

+0

webview.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);フルスクリーンの場合 – letroll

関連する問題