POST
|
Esri JavaScript API is built on dojo. Dojo handles double tap just fine http://dojotoolkit.org/reference-guide/1.10/dojox/gesture.html Hi Jeff, Yes, dojox.gesture.tap is right way to go . Because double click is standard dom event. But double tap is not. So need dojox to implement it. try to use the code . fLayer.on(tap.doubletap, lang.hitch(this, function(evt){ // alert('dbl tap'); onLayerDblClick(evt); }));
... View more
06-26-2014
02:09 AM
|
0
|
0
|
580
|
POST
|
to be honest, all of them. Specifically, ipad and samsung galaxy. Double-tap doesnt work at all. Or more specfically, there is no way to catch it. Below is code to show a custom dialog box on double click of a feature layer point. Currently there is no way to attach this to a doubletap event I have tried some suggestions, but each time I attach a doubletap event to the graphic it breaks being able to tap and move a point. var onLayerDblClick= function(evt){
var t = layer.template;
var content = esriLang.substitute(evt.graphic.attributes,t);
var highlightGraphic = new Graphic(evt.graphic.geometry,new SimpleMarkerSymbol());
map.graphics.add(highlightGraphic);
dialog.set("content", content);
domStyle.set(dialog.domNode, "opacity", 0.85);
dialog.show();
dialog.connect(dialog, "hide", function(e){
map.graphics.clear();
});
};
fLayer.on("dbl-click", lang.hitch(this, function(evt){
// alert('dbl click');
onLayerDblClick(evt);
})); Hi Jeff, Please note that Dbl click is not double-tap. They are not the same thing . As I known so far . There is no such event name "double tap" which already handled by nowadays modern browser. that means it should be handled by 3rd-party javascript library if you want it to be. So modern browser can not know the double tap gesture. (If I said something wrong, Please correct me. thanks in advance!) Best Regards Joe
... View more
06-25-2014
06:23 PM
|
0
|
0
|
878
|
POST
|
Thanks for the additional information Joe! I am looking into all touch issues in the Draw and Edit toolbars and you have been very helpful. From what I've seen so far, some older Blackberry specific exceptions were interfering with new IE11 touch events. This might be the same issue affecting Chrome. Touch should be working correctly in all device/software combinations in the next release. Hey jonathan, Thanks your kind reply which make this issue more clear. We are struggling to find a way to solve it. By the way, Could you please let us know what is the plan of the next release? thanks. Best Regards Joe
... View more
06-25-2014
12:22 AM
|
0
|
0
|
878
|
POST
|
Hey jonathan,Thanks your kind reply, I found it seems the map in my sample has some problem which I don't know what exactly it is. Because If I used the map from https://developers.arcgis.com/javascript/jssamples/ags_createwebmapid.html which map id is 4778fee6371d4e83a22786029f30c7e1 , The touch issue doesn't occur. I check the detail of both them, The difference is My map(8e900bdba72f451cbf5141a9a6073532) has 4 feature layer from feature services. The map in tutorial (4778fee6371d4e83a22786029f30c7e1) has a layer from map services. I don't know if there any more difference between them, If I was missing, Please let me know, and If it is the root cause of issue, Please give me some direction to fix it . Best Regards Joe
... View more
06-18-2014
05:53 PM
|
0
|
0
|
878
|
POST
|
Hi , I am stuck with a problem which is the double tap not working in the chrome of Nexus7. Say you have code like below. please help to review it .
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<meta http-equiv="X-UA-Compatible" content="IE=7, IE=9,IE=10" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<link href="http://js.arcgis.com/3.9/js/dojo/dojo/resources/dojo.css" rel="stylesheet">
<link href="http://js.arcgis.com/3.9/js/dojo/dijit/themes/claro/claro.css" rel="stylesheet">
<link href="http://js.arcgis.com/3.9/js/esri/css/esri.css" rel="stylesheet">
<script src="http://js.arcgis.com/3.9/"></script>
<script>
require(['dojo/_base/lang',
'dojo/dom-construct',
'dojo/dom',
'dojo/_base/html',
'esri/arcgis/utils',
"esri/toolbars/draw",
"/Scripts/AGIS/utils.js",
'esri/InfoWindowBase', "dojo/has", "dojo/_base/sniff", "dojo/domReady!"
], function (lang, domConstruct, dom, html, esriUtils, Draw, utils, infoWindow, has,d) {
var mapDiv = html.create('div', {
id: "map",
style: lang.mixin({
position: 'absolute',
backgroundColor: '#EEEEEE',
overflow: 'hidden'
}, utils.getPositionStyle({
"left": 0,
"top": 0,
"right": 0,
"bottom": 0
}))
});
html.place(mapDiv, "agis-layout-manager");
var b = navigator.userAgent;
console.log(b);
alert(b);
var a = b.match(/Android\s+(\d+\.\d+)/i);
a && alert("a[0]=" + a[0]);
a && alert(parseFloat(a[0]));
a && alert("a[1]=" + a[1]);
a && alert(parseFloat(a[1]));
a && alert("a[2]=" + a[2]);
a && alert(parseFloat(a[2]));
var c = b.match(/(iPhone|iPad|CPU)\s+OS\s+(\d+\_\d+)/i);
c && alert("c[0]=" + c[0]);
c && alert("c[1]=" + c[1]);
c && alert("c[2]=" + c[2]);
alert('d("esri-iphone") =' + d("esri-iphone"));
alert('d("esri-android") =' + d("esri-android"));
alert('d("esri-touch") = ' + d("esri-touch"));//true
alert('d("esri-pointer") = ' + d("esri-pointer"));//undefined
var mapDef = esriUtils.createMap("8e900bdba72f451cbf5141a9a6073532", "map");
mapDef.then(lang.hitch(this, function (response) {
var map = response.map;
if (map.loaded) {
_initMap(map);
} else {
dojo.connect(map, "onLoad", function () {
_initMap(map);
});
}
}));
var _initMap = function (map) {
//map.enableDoubleClickZoom();
alert("map.isDoubleClickZoom is " + map.isDoubleClickZoom);
alert("map.isPan is " + map.isPan);
};
});
</script>
</head>
<body class="claro">
<div id="main">
<div style="position:relative; margin:0; padding:0; width:100%; height:100%;">
<div style="position:relative;width:100%; height:100%;z-index:0;" id="agis-layout-manager">
</div>
</div>
</div>
</body>
</html>
Could someone please help me out ? Thanks. Best Regards Joe ******Updated********* I test above script in below devices. Please review it. 1. Surfari in IPad2 (Double tap works fine.). 2. IE11 in Surface (Double tap not works) (and Why the feature esri-touch test is false? and the feature esri-pointer test is true.). 3. Chrome in Window7 computer(Mouse double click works). 4. Chrome in Nexus7 (Double tap not works).
... View more
06-17-2014
07:21 PM
|
0
|
18
|
2291
|
POST
|
After debug into the Arcgis js code . I found something useful in the source code.(By the way , Is there any debug version of Arcgis javascript code to be downloaded ? I just get them from the temporary download folder of Browser. and format the code in the http://jsbeautifier.org/. save to local file. etc .. It is a really hard work to be done. Strongly recommend Arcgis open source their javascript lib. Anyone agree with me ?) Ok . Go back to my topic. 🙂 I found when loading arcgis javascript lib , it will determine what kind of browser client it is . you can see this function in the module "esri/sniff". and I found arcgis will add a feature named "esri-poiter" in there . the code is d.add("esri-pointer",navigator.pointerEnabled || navigator.msPointerEnabled); Since in the IE10 the navigator.msPointerEnabled is true. so the feature test will be true for IE10. but in the other browser is false. This will determine what features will be added to the map. For example in the module "esri/MapNavigationManager" will test this feature. If it is false or undefined. Then will add dbl-click event handler for the map. So for the issue in my last post , The solution I can think out is removing this feature before I create map. The code looks like below.
sn.cache["esri-pointer"] = undefined;
var mapDef = esriUtils.createMap(mapConfig.map.itemId, this.mapDivId, {
mapOptions: {
slider: false,
nav: false,
infoWindow: custInfoWin
}
});
sn represent dojo/has module. Fortunately In my test (IE10: Browser mode :ie10 document mode : standards ). The double click will enlarge the map immediately. So far I didn't found any further issues. So I guess it works. But I am still not sure if it is ok for this solution. I hope someone can give some comments to it. thanks.
... View more
06-12-2014
07:15 PM
|
0
|
0
|
274
|
POST
|
Hi Everyone, I just joined here and this is my first question here, If I did something wrong ,Please kindly correct me . thanks. I am just a newbie of Arcgis javascript , I created a map which contains a layer . The layer has pop-up infowindow whenever I click on the layer. The webmap can be viewed from https://accela.maps.arcgis.com/home/webmap/viewer.html?webmap=8e900bdba72f451cbf5141a9a6073532 and Currently the map can be shown successfully in my web site except a problem . I used below code to generate the map.
var mapDef = esriUtils.createMap("8e900bdba72f451cbf5141a9a6073532", "divMap");//divMap is an id of div.
mapDef.then(lang.hitch(this, function (response) {
var map = response.map;});
I found If I viewed it in the browser chrome/Firefox/IE9. Double-click on the layer will zoom-in the map immediately. But if I view it within IE10/IE11 . double-click will pop up a infowindow which contains a link "zoom to" to make the map zoom in. So my question is can I disable the popup infowindows and just enlarge the map immediately when double click on my layer in IE10 ? (I just want only the single click to popup property window.) If it can not be made or Arcgis doesn't support, Someone please tell me , thanks you in advance. Any comments are appreciated. Thanks, Joe
... View more
06-09-2014
11:37 PM
|
0
|
1
|
789
|
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:23 AM
|