Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
触摸事件在cordova应用程序的ios版本上不起作用_Ios_Xcode_Cordova_Ios10_Cordova Ios - Fatal编程技术网

触摸事件在cordova应用程序的ios版本上不起作用

触摸事件在cordova应用程序的ios版本上不起作用,ios,xcode,cordova,ios10,cordova-ios,Ios,Xcode,Cordova,Ios10,Cordova Ios,我有一个非常简单的cordova应用程序,它是默认cordova“设备就绪”模板的扩展。它有一个带有简单点击事件的按钮 从这里可以看出,它是在iOS模拟器上运行的 下面是我的项目代码 index.html <html> <head> <meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe

我有一个非常简单的cordova应用程序,它是默认cordova“设备就绪”模板的扩展。它有一个带有简单点击事件的按钮

从这里可以看出,它是在iOS模拟器上运行的

下面是我的项目代码

index.html

<html>
<head>
    <meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">
    <meta name="format-detection" content="telephone=no">
    <meta name="msapplication-tap-highlight" content="no">
    <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
    <link rel="stylesheet" type="text/css" href="css/index.css">
    <title>Hello World</title>
</head>
<body>
    <div class="app">
        <h1>Simple App</h1>
        <div id="deviceready" class="blink">
            <p class="event listening">Connecting to Device</p>
            <p class="event received">Device is Ready</p>
        </div>
        <button type="button" id="testBttn">Press me</button>
    </div>
    <script type="text/javascript" src="cordova.js"></script>
    <script type="text/javascript" src="js/index.js"></script>
</body>
</html>
我面临的问题是,当在模拟器上运行时,按钮对任何点击(触摸手势)都完全没有反应

在浏览器中运行时,该按钮工作正常并输出到控制台

当我在模拟器上通过XCode而不是CLI运行应用程序时,我得到了相同的结果,尽管我在模拟器屏幕上单击任意位置时会得到以下输出

2016-10-13 00:16:57.738602 CordovaApp[14845:2773283] subsystem: com.apple.UIKit, category: Touch, enable_level: 0, persist_level: 0, default_ttl: 1, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 1, privacy_setting: 2, enable_private_data: 0
2016-10-13 00:16:57.739331 CordovaApp[14845:2773283] subsystem: com.apple.UIKit, category: Gesture, enable_level: 0, persist_level: 0, default_ttl: 1, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 1, privacy_setting: 2, enable_private_data: 0
2016-10-13 00:16:57.741806 CordovaApp[14845:2773283] subsystem: com.apple.UIKit, category: GestureExclusion, enable_level: 0, persist_level: 0, default_ttl: 1, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 1, privacy_setting: 2, enable_private_data: 0
此输出提供的信息很少,但可能表明存在一个明显的问题。我在构建本机ios应用程序时从未获得过这种输出

谢谢你的帮助

编辑:我正在使用XCode 8.0


我提到这一点是因为在构建ios 10应用程序时,这种控制台输出在XCode 8中非常常见。从我所能发现的情况来看,这个控制台输出是微不足道的,没有什么不寻常的。

我发现同样的事情今天突然发生在我身上。我找到的唯一解决方案并不是真正的解决方案,但当我切换到另一个应用程序,然后突然切换回我的应用程序时,所有触摸事件都重新开始工作。但新打开的应用程序完全没有响应。因此,这不是一个确切的解决方案,但看看您是否体验到相同的行为。

使用
touchstart
应该可以:

initialize: function() {
    document.getElementById('testBtn').addEventListener('touchstart', this.clickedBtn.bind(this), false);
},

clickedBtn: function() {
    console.log('CLICKED THE BUTTON!');
},

请编写document.getElementById(“testBttn”).addEventListener(“单击”,函数(){console.log('button was pressed!');});在ReceiveEvent函数中,如果您启动跨平台,请为其提供更好的方式代码,并使用cordova。不幸的是,按照您的建议将事件侦听器添加到receivedEvent函数不会产生任何不同的结果:(仅仅是听说别人有这个问题,而且它的可复制性对我来说就是音乐。至少这是一个超越了我们任何过错的问题,这条线索中的答案可能会帮助将来的任何人解决同样的问题。实际上,我提供了一个临时解决方案。
initialize: function() {
    document.getElementById('testBtn').addEventListener('touchstart', this.clickedBtn.bind(this), false);
},

clickedBtn: function() {
    console.log('CLICKED THE BUTTON!');
},