Unable to get GPS coordinates using Javascript on browser in Android
我对 android、java 和 javascript 编码非常陌生。
我正在尝试获取当前的 GPS 坐标并随后在 Android 设备上对其进行跟踪。我正在使用 webview,并且大部分代码都是用 javascript 编写的。
这几天我进行了很多搜索并尝试了许多不同的方法,但我无法在 android 设备上获取 GPS 坐标。请查看代码并帮助我弄清楚为什么我没有获得 GPS 位置。
需要指出的几点是 –
1. 我下载并检查了其他传感器应用程序,可以看到当前显示的 GPS 坐标(因此 GPS 正在设备上工作)。
2. 当我运行我的代码时,我在通知区域看到 GPS 搜索图标,它一直在闪烁,但从未修复。
3. 当我在笔记本电脑浏览器上只运行带有 javascript 的 HTML 文件时,它会询问共享位置的权限,然后给出坐标,但是同一个文件在 android.
中没有显示任何内容
请查看下面的代码并帮助我解决这个问题。我已经尝试了很多,并将其发布为我最后的希望。
清单文件具有以下权限 –
1
2 3 4 5 6 |
<uses–permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses–permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <uses–permission android:name="android.permission.INTERNET"/> <uses–permission android:name="android.permission.ACCESS_GPS" /> <uses–permission android:name="android.permission.ACCESS_ASSISTED_GPS" /> <uses–permission android:name="android.permission.ACCESS_LOCATION" /> |
Android中的主要java代码有-
1
2 3 4 5 6 7 8 9 10 |
@Override
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); webView = new WebView(this); webView.getSettings().setJavaScriptEnabled(true); webView.getSettings().setLoadWithOverviewMode(true); webView.getSettings().setUseWideViewPort(true); webView.loadUrl("file:///android_asset/mymap.html"); setContentView(webView); } |
而带有 javascript 的 HTML 文件是 –
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
<!DOCTYPE html> <html> <body onunload="OnUnload()" onload="getLocation()"> <p id="demo">Your coordinates:</p> var watchID; function OnUnload() </body> |
提前非常感谢,
斧头
好吧,我做了进一步的搜索并找到了解决方案。我在此处发布这些链接作为对我的问题的回答,供任何来到这里寻找答案的人使用。
在加载 url 之前,我必须在我的 java 代码中添加这些行,然后我才能看到地理坐标。
1
2 3 4 5 6 7 |
webView.getSettings().setGeolocationEnabled(true);
webView.setWebChromeClient(new WebChromeClient() { public void onGeolocationPermissionsShowPrompt(String origin, GeolocationPermissions.Callback callback) { // callback.invoke(String origin, boolean allow, boolean remember); callback.invoke(origin, true, false); } }); |
更多信息请点击这两个链接 –
- android webview 地理定位
- Android:使用 html5 使用 javascript api 确定 webview 中的地理位置
在 Android 6.0 手机上(不确定其他版本),这在我的
1
|
targetSdkVersion: 23
|
减少到
1
|
targetSdkVersion 21
|
解决了我的问题。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/269066.html