Включение функции увеличения размера экрана в приложении Phonegap Android не влияет

Мне нужно иметь возможность включать и отключать масштабирование и масштабирование с помощью параметра viewport в моем приложении Android PhoneGap.

Но при использовании PhoneGap я не могу получить окно просмотра, чтобы повлиять на масштабирование при нажатии. Я не могу включить Pinch-zoom в PhoneGap, но при просмотре с помощью браузера Android на своем веб-сайте все работает нормально.

Я потратил много времени на поиск решения без каких-либо результатов.

Я создал очень простой index.html для тестирования, имея настройки вида просмотра:

<meta name="viewport" content="user-scalable=yes" /> 

Как некоторые из них предположили, что я также пробовал окно просмотра:

 <meta name="viewport" content="user-scalable=1" /> 

Другие решения для Android PhoneGap будут включать Android Native Pinch-Zoom, которые были предложены здесь: увеличить размер телефонного звонка для Android. Но это не сработает для меня, так как мне нужно иметь возможность контролировать масштабирование с javascript. Т.е. мне нужно иметь возможность использовать javascript для изменения настройки видового экрана, чтобы контролировать, когда доступен масштабируемый zoom (user-scaleable = yes / user-scalable = no)

Обратите внимание, что другие настройки в виде просмотра, такие как «начальная шкала» и «target-densitydpi», работают нормально. Например, установка начального масштаба = 2 запускает приложение масштабирования.

(В настоящее время я тестирую масштабирование на PhoneGap 1.4.1 и HTC Desire HD Android 2.3.3)

Я начинаю думать, что я пропустил что-то очевидное, так как я нахожу так мало информации о подобных проблемах …

Минимальный index.html:

 <!DOCTYPE HTML> <html> <head> <meta name="viewport" content="user-scalable=yes" /> <meta http-equiv="Content-type" content="text/html; charset=utf-8"> <title>Minimal AppLaud App</title> <script type="text/javascript" charset="utf-8" src="phonegap-1.4.1.js"></script> <script type="text/javascript" charset="utf-8"> var onDeviceReady = function() { document.getElementById("devready").innerHTML = "OnDeviceReady fired."; }; function init() { document.addEventListener("deviceready", onDeviceReady, true); } </script> </head> <body onload="init();" id="stage" class="theme"> <h2>Minimal AppLaud App</h2> <p> LOTS OF TEXT WHICH HAVE BEEN REMOVED HERE </p> <p><span id="devready">onDeviceReady not fired.</span></p> </body> </html> 

Цените любые идеи, которые у вас могут быть!

Solutions Collecting From Web of "Включение функции увеличения размера экрана в приложении Phonegap Android не влияет"

У меня точно такая же проблема, и, помимо тестирования различных параметров видового экрана, я пробовал следующие предложения: Pinch Zoom в Android с Phonegap и jQuery Mobile, но я не могу заставить его работать (тестирование на Samsung Galaxy SII, Android 4.0.3) , Тем не менее, другие сообщили об успешном масштабировании с помощью подсказок из ссылки. Надеюсь, это тоже поможет!

Вы используете PhoneGap Build? Это невозможно с помощью PhoneGap Build.

Используя Desktop PhoneGap, если вы еще этого не сделали, следуйте инструкциям PhoneGap Getting Started with Android Guide и настройте код в проекте Eclipse.

После настройки отредактируйте основной файл Java, как в руководстве по началу работы: Добавьте следующие импорты:

 import android.webkit.WebSettings; import android.webkit.WebSettings.ZoomDensity; 

Ниже «super.loadUrl (« file: ///android_asset/www/index.html »); Который вы ввели, как часть руководства по началу работы, добавьте:

 settings.setBuiltInZoomControls(true); settings.setSupportZoom(true); settings.setDefaultZoom(ZoomDensity.MEDIUM); 

Очистите и создайте свой проект – теперь нужно масштабировать.

Чтобы ограничить, насколько далеко пользователи могут увеличить масштаб, добавьте метатег, например, один ниже на каждую страницу HTML:

 <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, minimum-scale=1, maximum-scale=1.5, user-scalable=1"> 

Просто подтвердил Pinch Zoom как работающий на следующих телефонах Android:

  • Samsung Galaxy S820L Android 4.4

  • LG Sunset L33L Android 5.0

С помощью PhoneGap CLI (а не службы) в Windows:

 C:\>phonegap --version 5.4.1 

Android SDK Tools Verion:

 24.4.1 (from the SDK Manager) 

Вот код для MainActivity.java (платформ \ android \ src \ com \ phonegap \ helloworld):

 package com.phonegap.helloworld; import android.os.Bundle; import org.apache.cordova.*; import android.webkit.WebView; import android.webkit.WebSettings; public class MainActivity extends CordovaActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Set by <content src="index.html" /> in config.xml loadUrl(launchUrl); WebView webView = (WebView) appView.getEngine().getView(); WebSettings settings = webView.getSettings(); settings.setBuiltInZoomControls(true); settings.setDefaultZoom(WebSettings.ZoomDensity.MEDIUM); settings.setSupportZoom(true); } } 

И это в index.html:

  <meta name="viewport" content="user-scalable=yes, initial-scale=1, maximum-scale=3, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" /> 

Еще одно примечание – с помощью этого вызова:

 settings.setDefaultZoom(WebSettings.ZoomDensity.MEDIUM); 

Получил это при построении:

 uses or overrides a deprecated API - Note: Recompile with -Xlint:deprecation for details 

Прокомментировал это, и Zoom не пострадал.

Спасибо вам, ребята!!!

Тот, кто даже после этого не нашел решения для этого, я нашел ответ, на который был дан ответ 17 ноября 2015 года.

Обходной путь здесь

 import android.webkit.WebView; 

 // super.appView.getSettings().setBuiltInZoomControls(true); // super.appView.getSettings().setDefaultZoom(ZoomDensity.MEDIUM); // super.appView.getSettings().setSupportZoom(true); // Instead use this WebView webView = (WebView) appView.getEngine().getView(); WebSettings settings = webView.getSettings(); settings.setBuiltInZoomControls(true); settings.setDefaultZoom(ZoomDensity.MEDIUM); settings.setSupportZoom(true); 

Это сработало для меня.

Источник: https://github.com/LouisT/cordova-useragent/issues/1

Для cordova 5.xx вам необходимо использовать решение из https://github.com/LouisT/cordova-useragent/issues/1

 import android.webkit.WebView; WebView webView = (WebView) appView.getEngine().getView(); WebSettings settings = webView.getSettings(); settings.setBuiltInZoomControls(true); settings.setDefaultZoom(ZoomDensity.MEDIUM); settings.setSupportZoom(true); 

Для меня потребовалось изменить ZoomDensity.MEDIUM на WebSettings.ZoomDensity.MEDIUM

Документ html5 должен начинаться с:

 <!DOCTYPE html> 

Без этой строки не работал viewport AppBrowser в Phonegap Android