2015-12-28 2 views
2

Мне нужно реализовать щепотку, чтобы увеличить страницу html. Я не в состоянии сделать это с ниже код в MainActivity.javaPinch для увеличения с помощью Cordova> 5.x.x

  • Это мой первый гибрид приложение
  • Кордова (5.0.4) + JQM андроид приложение
  • для Android целевой платформы API 23 и мин Версия поддержки sdk - API 14 ..
  • код работал как ожидалось, прежде чем я обновил кордову cli до 5.xx

Есть ли какие-либо обновления с помощью cordova> 5.x.x, чтобы код выше не работал во время сборки?

Заранее спасибо.

import android.webkit.WebSettings; 
import android.webkit.WebSettings.ZoomDensity; 
public class MainActivity extends CordovaActivity { 
    @Override public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     // Set by in config.xml 
     loadUrl(launchUrl) 

     super.appView.getSettings().setBuiltInZoomControls(true); 
     super.appView.getSettings().setDefaultZoom(ZoomDensity.MEDIUM); 
     super.appView.getSettings().setSupportZoom(true); 
    } 
} 
+0

Что является вашей целевой платформы? Что еще вы пробовали? Это ваше первое гибридное приложение? – JesseMonroy650

+0

Для целевой платформы Android используется API 23 и версия поддержки min sdk - API 14 .. Я пробовал только этот код и работал как ожидалось, прежде чем обновить кордову cli до 5.x.x. – daxesh

+0

Я забыл спросить. Это ваше первое гибридное приложение? – JesseMonroy650

ответ

0

@daxesh,
спасибо за проводку вопроса. Если у вас есть время прочитать этот FAQ:
Top Mistakes by Developers new to Cordova/Phonegap

Одна из первых вещей, которые вы должны знать - если у вас есть что-нибудь сделать на Кордову или PhoneGap И он не доступен в базовом наборе функций, то вы должны смотреть для плагина, чтобы сделать то, что вам нужно. Последнее, что вам нужно сделать, это добавить собственный код (в данном случае Java, Objective-C, если iOS). Единственное исключение - если вы собираетесь создать плагин.

Для вас задача, вы хотите убедиться, что у вас есть соответствующая настройка, и посмотрите в пяти (5) разных местах. Чтобы быть ясным, вы будете выполнять всю задачу с HTML5 и CSS3. Это связано с тем, что мы используем библиотеку webview.

  1. настройки в окне проекции
  2. настройки в вашем CSS
  3. иногда есть плагин, чтобы сделать то, что вам нужно
  4. иногда вам нужно использовать библиотеку JavaScript
  5. настройки с библиотеками Webview третьего PARY

На # 1, самый основной параметр:

<meta name="viewport" content="width=device-width, initial-scale=1">

Избегайте использования minimum-scale и maximum-scale, или любой другой параметр, который сжимают изменение размеров WebView.

Настоящая статья является хорошей ссылкой, Using the viewport meta tag to control layout on mobile browsers. CanIUse.com - тоже хороший ресурс. Вы также можете использовать Google: html5 viewport.

Чтобы быть понятным, нет никаких настроек для «щепотка для увеличения», но если вы скажете библиотеке веб-просмотра не допускать другую «шкалу», тогда она не будет изменяться - не важно, что еще вы делаете. Поэтому не забудьте использовать только то, что вы * знаете, и не более того.

На # 2, иногда вы найдете настройку CSS3, которая поможет вам добраться туда, где вам нужно.

Это видео поможет вам добраться туда, где вы хотите. В 12: 25-16: 15 он говорит о «щепотке для увеличения», но вы, вероятно, захотите посмотреть все видео.
Stephen Woods: "Creating Responsive HTML5 Touch Interfaces" (24 min.)

Вы можете также Google: css webkit pinch

На # 3, третья партия плагинов в http://cordova.apache.org/plugins/. В настоящее время я не нахожу этого.

На # 4, Иногда легче найти библиотеку Javascript, которая может справиться с задачей. Вы хотите, чтобы проверить эти популярные каркасы: Ionic, JQuery Mobile, YUI, BootStrap

На # 5, при использовании Кордова/PhoneGap каждая платформа использует библиотеку Webview по умолчанию, который поставляется с системой. На iOS называется UIWebView и WKWebview (есть две (2) библиотеки.).

Однако, иногда вы можете использовать библиотеку третьей стороны, как Crosswalk или cordova-plugin-wkwebview по eddyverbruggen. При использовании этих альтернативных библиотек вы должны попросить автора, если у них есть встроенная поддержка. Обычно они выполняют, как обычно, с Webkit library. Чтобы узнать больше о проблеме webkit, прочитайте статью Пола Ирриша: Webkit for Developers. – Best of Luck

0

Я думаю, вам стоит попробовать что-то вроде hammer.js (http://hammerjs.github.io/) для обнаружения жестящего пальца, а затем преобразовать содержимое в JS/CSS. Не полагайтесь на модификацию Java внутри Cordova/PhoneGap.

Однако, если вы действительно действительно нужно сделать это таким образом (путем изменения MainActivity.java), вы можете попробовать это:

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

public class MainActivity extends CordovaActivity { 
    @Override public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     loadUrl(launchUrl); 

     WebView webView = (WebView) appView.getEngine().getView(); 
     WebSettings settings = webView.getSettings(); 
     settings.setBuiltInZoomControls(true); 
     settings.setDefaultZoom(ZoomDensity.MEDIUM); 
     settings.setSupportZoom(true); 
    } 
} 
+1

это может натолкнуться на часть темы, но как вы можете редактировать собственный код андроида (java) из приложения cordova? Я разработал проект в Кордове в Visual Studio и никогда не понял, как использовать собственные возможности для Android или iOS –

Смежные вопросы