java - 在 Webview 上启用 GeoLocation

标签 java android webview

晚上好。我正在使用 Webview 在 Android 上制作跟踪应用程序。我遇到了问题,因为系统在该位置旁边都运行良好。

在 list 中我已经得到了这个权限设置

<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>

在 mainactivity.java 中我得到了这个

public class MainActivity extends AppCompatActivity {

public WebView webView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.activity_main);

    webView = (WebView)findViewById(R.id.webView);
    WebSettings webSettings = webView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    webView.loadUrl("https://www.primaniagatracking.com/slogin.php");
    webView.setWebViewClient(new WebViewClient());
}}

我不知道让它起作用的原因可能是总是出现征求许可之类的。需要很大的帮助。谢谢。我已经搜索了一些关于启用权限的模板,但遇到了很多错误。

最佳答案

    private boolean isLocationPermissionGrandted() {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
            return ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED
                    || ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED
                    || ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_BACKGROUND_LOCATION) == PackageManager.PERMISSION_GRANTED;
        } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            return ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED
                    || ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED;
        } else {
            return true;
        }
    }


    private void getLocationPermission() {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
            ActivityCompat.requestPermissions(this, new String[] {Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_BACKGROUND_LOCATION}, PERMISSION_LOCATTION_CODE);
        } else {
            ActivityCompat.requestPermissions(this, new String[] {Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION}, PERMISSION_LOCATTION_CODE);
        }
    }
if (isLocationPermissionGrandted())
     initializeWebView();
else
     getLocationPermission();

关于java - 在 Webview 上启用 GeoLocation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48661081/

相关文章:

html - 如何从ios webview读取文档目录中的图像文件

Java Annotation and Processor 将方法标记为只能调用一次?

java - 如何使用 Sikuli Java Standalone jar 输入文本?

java - 源模式到目标模式映射框架

android - 处理具有负页边距的 ViewPager 中的点击事件

java - 如何在java/android中将JPG图像转换为字符串

java - 在 Android Studio 中将图像保存到图库中时出错

java - libGDX 渲染 TextureRegion 渲染太多

webview - 我应该给 WebView 哪个基本 url,以便 WebView 正确加载 css 和字体文件?

java - Webview - 如何在旋转时停留在当前页面