物理iOS设备上的PhoneGap / Cordova onClick区域

时间:2013-05-24 15:35:23

标签: cordova

我最近开始使用构建在PhoneGap(v2.2.0)上的移动应用程序帮助某人。我们目前专注于iOS。

他们遇到的一个问题是,有时候"按钮"不能在整个可视区域内点击,这会让用户感到沮丧。

  • 这些按钮基本上只是divs,其中包含onClick个事件。
  • 如果我在浏览器中或通过Xcode在iOS 6.1模拟器中运行应用程序,我发现div的整个区域都会触发onClick事件。只有将应用程序加载到物理设备上后才会出现此问题。
  • 似乎有一个15px宽的#34;死了#34;事件未触发的区域。有时这是div的整个右侧(最右边15 px左右),但有时它是前15个px左右。
  • 我已将应用程序提升为准系统,以消除其他JS库或CSS工作表可能导致的任何问题。整个示例应用程序是以下index.html。在此示例中,100x100px div的前100x15px不会触发事件。

代码:

<!DOCTYPE HTML>
<html>
<head>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8"/>

    <script type="text/javascript">
        var platform = '';
        var userAgent = navigator.userAgent.toLowerCase();

        if (userAgent.indexOf('android') > 0) {
            platform = 'android';
        }

        else if (userAgent.indexOf('blackberry') > 0 || userAgent.indexOf('BB10') > 0) {
            platform = 'blackberry';
        }

        else if (userAgent.indexOf('iphone') > 0 || userAgent.indexOf('ipad') > 0 || userAgent.indexOf('ipod') > 0) {
            platform = 'ios';
        }

        // Using document.write here because head.appendChild(script) takes too long in Android 4.0+
        if (platform) {
            document.write('<script charset="utf-8" src="jscripts\/cordova\/cordova-2.2.0-' + platform + '.js"><\/script>');
        }
    </script>


    <script type="text/javascript">

        document.addEventListener("deviceready", onDeviceReady, false);

        function onDeviceReady() {
            navigator.notification.alert("Cordova is working");

            document.getElementById("btnButton").addEventListener("click", fooBar, false);
        }

        function fooBar() {
            document.getElementById("btnButton").style.backgroundColor = "blue";
        }
    </script>
</head>
<body>

    <div id="btnButton" style="height:100px; width:100px; background-color: red; color:white;" onclick="navigator.notification.alert('Sorry, incorrect');"></div>

</body>
</html>

如果有人在那里可以给我任何指示,它可以阻止我拉出我的头发留下的东西。我花了最后一天半的时间来完成这项工作,删除了一些东西,谷歌搜索和我的想法。

0 个答案:

没有答案