我需要能够使用Android PhoneGap应用程序上的视口设置打开和关闭双指缩放.
但是在使用PhoneGap时,我无法让视口完全影响缩放.我无法在PhoneGap中启用Pinch-zoom,但在使用Android Native浏览器浏览网页时,一切正常.
我花了很多时间寻找解决方案,没有任何结果.
我创建了一个非常简单的index.html用于测试,其视口设置如下:
<meta name="viewport" content="user-scalable=yes" />
Run Code Online (Sandbox Code Playgroud)
有些人建议我也试过了视口:
<meta name="viewport" content="user-scalable=1" />
Run Code Online (Sandbox Code Playgroud)
Android PhoneGap的其他解决方案是启用这里建议的Android Native Pinch-Zoom: 放大android的phonegap 但是这对我不起作用,因为我需要能够控制来自javascript的缩放变焦.即我需要能够使用javascript更改视口设置,以控制何时可用缩放缩放(user-scalable = yes/user-scalable = no)
请注意其他视口设置,如"initial-scale"和"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();" …Run Code Online (Sandbox Code Playgroud) 如何为Android用户启用我的phonegap应用程序的缩放?
我尝试自定义"Sample/src/com/phonegap/Sample/Sample.java",但它仍然无法正常工作:
有任何想法吗?
package com.phonegap.Sample;
import android.app.Activity;
import android.os.Bundle;
import com.phonegap.*;
import android.webkit.WebSettings;
public class Sample extends DroidGap
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
super.loadUrl("file:///android_asset/www/index.html");
WebSettings ws = super.appView.getSettings();
ws.setSupportZoom(true);
ws.setBuiltInZoomControls(true);
}
}
Run Code Online (Sandbox Code Playgroud)