放大Phonegap Android应用程序不起作用

我需要能够使用Android PhoneGap应用中的视口设置打开和关闭捏放大缩小。

但是在使用PhoneGap时,我无法使用视口来影响缩放。 我无法打开PhoneGap中的Pinch-zoom,但使用Android Native浏览器浏览网页时,一切正常。

我花了很多时间寻找解决方案,没有任何结果。

我创建了一个非常简单的index.html进行测试,其视口设置如下:

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

正如一些人所建议的,我也尝试了视口:

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

Android PhoneGap的其他解决方案将启用Android Native Pinch-Zoom,这里已经提出了这个建议:放大android的phonegap但是这对我不起作用,因为我需要能够控制来自javascript的捏缩放。 即我需要能够使用javascript来更改视口设置,以控制pinch-zoom何时可用(user-scalable = yes / user-scalable = no)

请注意其他视口设置,如“初始缩放”和“target-densitydpi”似乎工作正常。 例如,设置initial-scale = 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>

欣赏你可能拥有的任何想法!


我有完全相同的问题,除了测试不同的视口设置,我已经尝试了这样的建议:用Phonegap和jQUERY Mobile捏放大Android,但我不能使它工作(测试三星Galaxy SII,Android 4.0.3) 。 然而,其他人已经报告使用链接的提示成功缩小缩放。 希望它也能帮助你!


你在使用PhoneGap Build吗? PhoneGap Build不可能。

使用桌面PhoneGap,如果您尚未安装,请遵循PhoneGap Android入门指南,并在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">

刚刚确认捏缩放作为在以下Android手机上工作:

  • 三星Galaxy S820L Android 4.4

  • LG日落L33L Android 5.0

  • 使用PhoneGap CLI(不是服务),在Windows上:

    C:>phonegap --version
    5.4.1
    

    Android SDK工具Verion:

    24.4.1 (from the SDK Manager)
    

    以下是MainActivity.java的代码(platforms 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
    

    评论出来,缩放不受影响。

    感谢你们!!!

    链接地址: http://www.djcxy.com/p/67411.html

    上一篇: zoom in Phonegap Android application has no effect

    下一篇: android: how to load and display large images(A0 size)