Precise tap (inspector) works well, but driver.tap() doesn't work

I tried to tap an element (webview) by precise tap using inspector, and it worked well;
but when I use driver.tap(x,y) to tap the same element, it failed.
And from the log, I didn’t see any error, the command run successfully, but it just fail to tap the element…

So I want to know are there any difference between precise tap (inspector) and driver.tap() method ? Thank you so much.

Log of my testcase:

info: [debug] [INST] 2015-02-15 07:51:48 +0000 Debug: Got new command 13 from instruments: target.touch([{“touch”:[{“x”:185,“y”:268}],“time”:0.2}])
info: [debug] [INST] 2015-02-15 07:51:48 +0000 Debug: evaluating target.touch([{“touch”:[{“x”:185,“y”:268}],“time”:0.2}])
info: [debug] [INST] 2015-02-15 07:51:49 +0000 Debug: target.touch(__NSCFArray)
info: --> GET /wd/hub/status {}
info: [debug] Responding to client with success: {“status”:0,“value”:{“build”:{“version”:“1.3.5”,“revision”:“a124a15677e26b33db16e81c4b3b34d9c6b8cac9”},“isShuttingDown”:false},“sessionId”:“9437f06e-6e9d-49dd-a616-df7c53419943”}
info: <-- GET /wd/hub/status 200 4.088 ms - 178 {“status”:0,“value”:{“build”:{“version”:“1.3.5”,“revision”:“a124a15677e26b33db16e81c4b3b34d9c6b8cac9”},“isShuttingDown”:false},“sessionId”:“9437f06e-6e9d-49dd-a616-df7c53419943”}
info: [debug] [INST] 2015-02-15 07:51:50 +0000 Debug: evaluation finished
info: [debug] [INST] 2015-02-15 07:51:50 +0000 Debug: responding with:
info: [debug] [INST] 2015-02-15 07:51:50 +0000 Debug: Running system command #14: /Applications/Appium.app/Contents/Resources/node/bin/node /Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/appium-uiauto/bin/command-proxy-client.js /tmp/instruments_sock 2,{“status”:0,“value”:""}…
info: [debug] Socket data received (25 bytes)
info: [debug] Socket data being routed.
info: [debug] Got result from instruments: {“status”:0,“value”:""}
info: [debug] Responding to client with success: {“status”:0,“value”:"",“sessionId”:“9437f06e-6e9d-49dd-a616-df7c53419943”}
info: <-- POST /wd/hub/session/9437f06e-6e9d-49dd-a616-df7c53419943/touch/perform 200 2022.919 ms - 74 {“status”:0,“value”:"",“sessionId”:“9437f06e-6e9d-49dd-a616-df7c53419943”}
info: --> GET /wd/hub/status {}
info: [debug] Responding to client with success: {“status”:0,“value”:{“build”:{“version”:“1.3.5”,“revision”:“a124a15677e26b33db16e81c4b3b34d9c6b8cac9”},“isShuttingDown”:false},“sessionId”:“9437f06e-6e9d-49dd-a616-df7c53419943”}
info: <-- GET /wd/hub/status 200 4.011 ms - 178 {“status”:0,“value”:{“build”:{“version”:“1.3.5”,“revision”:“a124a15677e26b33db16e81c4b3b34d9c6b8cac9”},“isShuttingDown”:false},“sessionId”:"9437f06e-6e9d-49dd-a616-df7c53419943”}

Log of Inspector:

info: --> POST /wd/hub/session/e049aed4-456a-4f1b-93fc-2c98c4d56c05/execute {“script”:“mobile: tap”,“args”:[{“y”:269,“touchCount”:1,“x”:185,“tapCount”:1,“duration”:0.5}]}
info: [debug] Pushing command to appium work queue: “au.complexTap({“tapCount”:1,“touchCount”:1,“duration”:0.5,“x”:185,“y”:269})”
info:
[debug] Sending command to instruments: au.complexTap({“tapCount”:1,“touchCount”:1,“duration”:0.5,“x”:185,“y”:269})
info: [debug] [INST] 2015-02-15 07:55:14 +0000 Debug: Running system command #11: /Applications/Appium.app/Contents/Resources/node/bin/node /Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/appium-uiauto/bin/command-proxy-client.js /tmp/instruments_sock 2,{“status”:0,“value”:""}…
info: [debug] [INST] 2015-02-15 07:55:34 +0000 Debug: Got new command 11 from instruments: au.complexTap({“tapCount”:1,“touchCount”:1,“duration”:0.5,“x”:185,“y”:269})info: [debug] [INST] 2015-02-15 07:55:34 +0000 Debug: evaluating au.complexTap({“tapCount”:1,“touchCount”:1,“duration”:0.5,“x”:185,“y”:269})
info: [debug] [INST] 2015-02-15 07:55:34 +0000 Debug: target.tapWithOptions({x:“185”, y:“269”}, {touchCount:“1”, duration:“0.5”, tapCount:“1”})
info: [debug] Socket data received (25 bytes)info: [debug] Socket data being routed.
info: [debug] Got result from instruments: {“status”:0,“value”:""}info: [debug] Responding to client with success: {“status”:0,“value”:"",“sessionId”:“e049aed4-456a-4f1b-93fc-2c98c4d56c05”}
info: <-- POST /wd/hub/session/e049aed4-456a-4f1b-93fc-2c98c4d56c05/execute 200 1625.486 ms - 74 {“status”:0,“value”:"",“sessionId”:“e049aed4-456a-4f1b-93fc-2c98c4d56c05”}
info: --> GET /wd/hub/session/e049aed4-456a-4f1b-93fc-2c98c4d56c05/source {}info: [debug] Pushing command to appium work queue: “au.mainApp().getTreeForXML()“info: [debug] Sending command to instruments: au.mainApp().getTreeForXML()
info: [debug] [INST] 2015-02-15 07:55:35 +0000 Debug: evaluation finished
info: [debug] [INST] 2015-02-15 07:55:35 +0000 Debug: responding with:
info: [debug] [INST] 2015-02-15 07:55:35 +0000 Debug: Running system command #12: /Applications/Appium.app/Contents/Resources/node/bin/node /Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/appium-uiauto/bin/command-proxy-client.js /tmp/instruments_sock 2,{“status”:0,“value”:””}…
info: --> GET /wd/hub/status {}
info: [debug] Responding to client with success: {“status”:0,“value”:{“build”:{“version”:“1.3.5”,“revision”:“a124a15677e26b33db16e81c4b3b34d9c6b8cac9”},“isShuttingDown”:false},“sessionId”:“e049aed4-456a-4f1b-93fc-2c98c4d56c05”}info: <-- GET /wd/hub/status 200 2.069 ms - 178 {“status”:0,“value”:{“build”:{“version”:“1.3.5”,“revision”:“a124a15677e26b33db16e81c4b3b34d9c6b8cac9”},“isShuttingDown”:false},“sessionId”:“e049aed4-456a-4f1b-93fc-2c98c4d56c05”}
info: [debug] [INST] 2015-02-15 07:55:37 +0000 Debug: Got new command 12 from instruments: au.mainApp().getTreeForXML()
info: [debug] [INST] 2015-02-15 07:55:37 +0000 Debug: evaluating au.mainApp().getTreeForXML()
info: [debug] [INST] 2015-02-15 07:55:40 +0000 Debug: evaluation finished
info: [debug] Socket data received (7812 bytes)

In addtion
Inspector command is: au.complexTap({“tapCount”:1,“touchCount”:1,“duration”:0.5,“x”:185,“y”:269})
My testcase command is:target.touch([{“touch”:[{“x”:185,“y”:268}],“time”:0.2}]
Why the commands are different?

I solve it by this way:
driver.execute_script(“mobile: tap”,{“y”:269,“touchCount”:1,“x”:185,“tapCount”:1,“duration”:0.5})

well, but I still don’t know why driver.tap() doesn’t work…

Have the same issue with java_client 2.1.0
the Precise tap is working, but the tap within the code (touch) doesn’t work.

Any idea ?