You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "Tom Nightingale (JIRA)" <ji...@apache.org> on 2016/01/13 02:55:39 UTC
[jira] [Comment Edited] (CB-10338) getCurrentPosition() hangs on
Android 4.2.2
[ https://issues.apache.org/jira/browse/CB-10338?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15095448#comment-15095448 ]
Tom Nightingale edited comment on CB-10338 at 1/13/16 1:55 AM:
---------------------------------------------------------------
Geolocation 1.x *did* work fine on Android 4.2.2 with Crosswalk Webview. That was when there was no js shim on android. It seems the shim was added back in cordova-android@5.x to support Android 6's runtime permission checking.
This leads me to believe there's a problem with the cordova-android@5.x/cordova-plugin-geolocation@2.x method of overriding window.navigator.geolocation and then deferring back to the original native object after the permission check is performed.
Is it possible to not perform this global override when run on < Android 6?
Time to dive into cordova/modulemapper...
was (Author: tom@tnightingale.com):
Geolocation 1.x *did* work fine on Android 4.2.2 with Crosswalk Webview. That was when there was no js shim on android. It seems the shim was added back in cordova-android@5.x to support Android 6's runtime permission checking.
This leads me to believe there's a problem with the cordova-android@5.x/cordova-plugin-geolocation@2.x method of overriding window.navigator.geolocation and then deferring back to the original native object after the permission check is performed.
Is it possible to not perform this global override when run on < Android 6 ?
Time to dive into cordova/modulemapper...
> getCurrentPosition() hangs on Android 4.2.2
> --------------------------------------------
>
> Key: CB-10338
> URL: https://issues.apache.org/jira/browse/CB-10338
> Project: Apache Cordova
> Issue Type: Bug
> Components: Plugin Geolocation
> Affects Versions: 2.0.0
> Environment: Android 4.2.2 (running cordova-android@5.0.0)
> Reporter: Tom Nightingale
> Labels: android
>
> Neither success or error callbacks are called after calling navigator.geolocation.getCurrentPosition().
> Stepping through the plugin with Chrome's Javascript debugger and Android Studio's Java debugger shows that the plugin's shim code successfully executes the Geolocation 'getPermission' check and returns back to fire the shim's success handler (line 31 [here|https://git-wip-us.apache.org/repos/asf?p=cordova-plugin-geolocation.git;a=blob;f=www/android/geolocation.js;h=82e3582e0c225340db44add8fe3ea81256dff03f;hb=57eb4dc550a3d88d3ebbb60a0d6a83d61f898dd7#l31]).
> However the next line which appears to call the platform's native getCurrentPosition() just hangs; neither the provided success or error callbacks are called. If I try step into that function call with the Chrome remote debugger it just jumps to the end of the executing function (line 36 @ above link). It's as if getCurrentPosition() is a no-op. Chrome's "show function definition" functionality isn't able to resolve the definition either.
> I wonder if the bug is somewhere in the cordova/modulemapper code? This is an area of Cordova I am not familiar with...
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@cordova.apache.org
For additional commands, e-mail: issues-help@cordova.apache.org