相关疑难解决方法(0)

JavaScript无法在Android Webview中使用?

我正在尝试制作Android版本的相对简单的iOS应用程序,它使用webview,一些按钮然后依赖于对CMS的javascript调用.

但我很早就陷入了困境:webview无法使用javascript.我已经阅读了很多关于如何在Android webview中启用JS的帖子,但到目前为止还没有运气.

以下是我的一些代码:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    mWebView = (WebView) findViewById(R.id.webview);
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.setWebChromeClient(new WebChromeClient());
    mWebView.setWebViewClient(new HelloWebViewClient()
    {
        @Override  
        public void onPageFinished(WebView view, String url)  
        {  
            //Calling an init method that tells the website, we're ready 
            mWebView.loadUrl("javascript:m2Init()");
            page1(mWebView);
        }  
    });
  mWebView.loadUrl("http://my_url/mobile/iphone//app.php");  
}

private class HelloWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }

}


@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
        mWebView.goBack(); …
Run Code Online (Sandbox Code Playgroud)

javascript android webview

60
推荐指数
6
解决办法
6万
查看次数

"gps"位置提供程序需要Android 6.0的ACCESS_FINE_LOCATION权限

在android清单文件中,我为gps添加了以下权限以访问该位置

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
Run Code Online (Sandbox Code Playgroud)

我正在使用位置管理器类来构建位置更新,如下所示

 private static final long MIN_DISTANCE_CHANGE_FOR_UPDATES = 10; // 10 meters
 private static final long MIN_TIME_BW_UPDATES = 1000 * 60 * 1; // 1 minute
 locationManager.requestLocationUpdates(
                    LocationManager.GPS_PROVIDER,
                    MIN_TIME_BW_UPDATES,
                    MIN_DISTANCE_CHANGE_FOR_UPDATES, 
                    this
                );
Run Code Online (Sandbox Code Playgroud)

但上面的一行是一个例外陈述

"gps" location provider requires ACCESS_FINE_LOCATION permission
Run Code Online (Sandbox Code Playgroud)

这个东西只发生在targetSDKVersion 23(即用android 6.0),我也在android 5.1中测试过,工作正常.

请帮助!!.提前致谢.

android

27
推荐指数
2
解决办法
8万
查看次数

Android平台上的QWebView HTML5 GeoLocation

尝试使用Necessitas的QWebView端口查看HTML5网页中的GPS坐标.但是它总是响应不支持.

function load( )
{
   if ( navigator.geolocation )
   {
      alert( "Supported." );
   }
   else
   {
      alert( "Not Supported!" );
   }
}
Run Code Online (Sandbox Code Playgroud)

我已经改变了QWebPage以允许权限:

BrowserWebPage::BrowserWebPage( QObject* parent ) : QWebPage( parent )
{
    connect( this,
             SIGNAL( featurePermissionRequested( QWebFrame*, QWebPage::Feature ) ),
             SLOT( permissionRequested( QWebFrame*, QWebPage::Feature ) ) );
}

void BrowserWebPage::permissionRequested( QWebFrame* frame, QWebPage::Feature feature )
{
    if ( feature == Geolocation )
    {
        setFeaturePermission( frame, feature, PermissionGrantedByUser );
    }
    else //denied
    {
        setFeaturePermission( frame, feature, PermissionDeniedByUser );
    }
}
Run Code Online (Sandbox Code Playgroud)

并设置以下权限: …

javascript c++ html5 android qt4

11
推荐指数
1
解决办法
1052
查看次数

Android:使用html5通过javascript api确定webview中的地理位置

我目前在webview中遇到地理定位问题.我有一个webapp.我目前没有使用phonegap或任何其他移动框架.我没有成功获得内置的html5地理位置javascript api,以便在Android应用程序的webview中运行的应用程序上运行.该网站工作正常,否则从Android 2.0+上的Chrome浏览器(支持地理位置).

我正在编译android api版本5.

我已经读过 这篇文章

Phonegap编写包含内置调用并使用主机活动的代理的解决方案很好,但我更喜欢使用内置到webview(webkit)而不使用手机间隙.

我在清单文件中设置了适当的权限:

<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" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
Run Code Online (Sandbox Code Playgroud)

这是一个示例代码段:

webview = (WebView) findViewById(R.id.webview);
pbarDialog = new ProgressDialog(this);
pbarDialog.setCancelable(false);
pbarDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
webview.setWebViewClient(new MyWebViewClient());
webview.getSettings().setJavaScriptEnabled(true);
webview.setWebChromeClient(new MyChromeWebViewClient());
webview.setVerticalScrollBarEnabled(false);
WebSettings webSettings = webview.getSettings();
webSettings.setSavePassword(true);
webSettings.setSaveFormData(true);
webSettings.setJavaScriptEnabled(true);
webSettings.setSupportZoom(false);
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
webSettings.setGeolocationEnabled(true);
Run Code Online (Sandbox Code Playgroud)

...

private class MyChromeWebViewClient extends WebChromeClient {

@Override
public void onProgressChanged(WebView view, int progress) {
    // Activities and WebViews measure progress with different scales.
    // …
Run Code Online (Sandbox Code Playgroud)

html5 android geolocation webview cordova

10
推荐指数
1
解决办法
2万
查看次数

显示提示知道位置

我使用Xamarin WebView控制器来显示一个网站(在iOS/Android中).网站的主页提示访问设备位置.但是,当我在WebView(来自应用程序)上拥有此网站时,该提示未显示.当我在浏览器上打开此站点时,它会从同一个移动设备显示消息框.我只是想知道是否有可能在Xamarin WebView上有这样的提示?

这是一个示例提示.

在此输入图像描述

这就是我在Xamarin应用程序中的全部内容.

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:local="clr-namespace:nCollar"
             x:Class="nCollar.MainPage">
    <ContentPage.Padding>
        <OnPlatform x:TypeArguments="Thickness">
            <OnPlatform.iOS>0,20,0,0</OnPlatform.iOS>
            <OnPlatform.Android>0,0,0,0</OnPlatform.Android>
            <OnPlatform.WinPhone>0,0,0,0</OnPlatform.WinPhone>
        </OnPlatform>
    </ContentPage.Padding>

    <WebView x:Name="webView"
                 Grid.Row="0"
                 VerticalOptions="FillAndExpand" 
                 Source="https://www.ncollar.com.au/"/>

</ContentPage>
Run Code Online (Sandbox Code Playgroud)

更新1

Android的

我已经尝试过这篇文章中提到的解决方案,但它仍然没有显示提示.

WebViewRenderer.cs

using Android.Webkit;
using Xamarin.Forms.Platform.Android;

[assembly: Xamarin.Forms.ExportRenderer(typeof(TestApp.Controls.WebView), typeof(TestApp.Droid.Renderers.WebViewRenderer))]
namespace TestApp.Droid.Renderers
{
    public class WebViewRenderer : Xamarin.Forms.Platform.Android.WebViewRenderer
    {
        protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.WebView> e)
        {
            base.OnElementChanged(e);

            if (this.Control == null)
            {
                return;
            }

            var webView = this.Element as TestApp.Controls.WebView;
            if (webView == null)
            {
                return;
            }


           // webView. ings.JavaScriptEnabled = true;
            this.Control.Settings.DomStorageEnabled = …
Run Code Online (Sandbox Code Playgroud)

android webview ios xamarin xamarin.forms

10
推荐指数
1
解决办法
866
查看次数

无法在Android上的浏览器上使用Javascript获取GPS坐标

我是android,java和javascript编码的新手.

我正在尝试获取当前的GPS坐标,然后在Android设备上跟踪它.我正在使用webview,大部分代码都是用javascript编写的.

我已经搜索了好几天并尝试了很多不同的方法,但我无法在Android设备上获得GPS坐标.请查看代码并了解为什么我没有获得GPS位置.

需要注意的一点是:1.我下载并检查了其他传感器应用程序,可以看到当前的GPS坐标显示(因此GPS正在设备上运行).2.当我运行我的代码时,我在通知区域看到GPS搜索图标,它一直闪烁但从不修复.3.当我在笔记本电脑浏览器上只运行带有javascript的HTML文件时,它会请求共享位置的权限,然后它会给出坐标,但是同一个文件在android中没有显示任何内容.

请看下面的代码并帮我解决这个问题.我已经尝试了很多,并将此作为我最后的希望发布.

清单文件具有以下权限 -

<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" />
Run Code Online (Sandbox Code Playgroud)

Android中的主要java代码有 -

@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);
}
Run Code Online (Sandbox Code Playgroud)

使用javascript的HTML文件是 -

<!DOCTYPE html>
<html>
<body onunload="OnUnload()" onload="getLocation()">
<p id="demo">Your coordinates:</p>
<script>
var watchID;
var x=document.getElementById("demo");
function getLocation()
  {
  if (navigator.geolocation)
    {
       var options = {maximumAge:600000, timeout:100000, enableHighAccuracy: true};
       watchID = navigator.geolocation.watchPosition(showPosition,showError,options);
    }
  else{x.innerHTML="Geolocation is not supported by this …
Run Code Online (Sandbox Code Playgroud)

javascript html5 gps android geolocation

6
推荐指数
1
解决办法
7181
查看次数

位置在Chrome中访问,在WebView中不起作用

我有一个WebView,它打开一个需要访问用户位置的URL.它可以确定在应用程序外部使用Google Chrome时的位置,但在应用程序中,它表示我不允许应用程序使用位置.目前我已添加

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
Run Code Online (Sandbox Code Playgroud)

在我的Manifest和我的班级里,我有:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.webViewActivity);
    WebView webView = (WebView) findViewById(R.id.webView);
    WebSettings webSettings = webView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    webView.setWebChromeClient(new WebChromeClient());
    webSettings.setAllowUniversalAccessFromFileURLs(true);
    webSettings.setDomStorageEnabled(true);
    webSettings.setGeolocationEnabled(true)
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?谢谢您的帮助.

android location google-chrome webview

5
推荐指数
1
解决办法
4603
查看次数

在运行时为 WebView 请求摄像头权限

我想在 Android WebView 上的 PWA 中使用二维码扫描仪。

  • PWA 在 chrome 浏览器上按预期工作。
  • 我确实有在应用程序 -> 应用程序名称 -> 权限下设置相机的权限
  • minSdkVersion 26targetSdkVersion 28
  • 在搭载 Android 9 的华为手机上测试

问题是权限似乎没有被授予。此外,权限请求会重复多次。

安卓代码

显现

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-feature
            android:name="android.hardware.camera"
            android:required="true" />
Run Code Online (Sandbox Code Playgroud)

根据上一个问题的答案,我在 WebViewHelper 类中有此代码

lateinit var webkitPermissionRequest : PermissionRequest
...
webView.webChromeClient = object : WebChromeClient() {

    override fun onPermissionRequest(request: PermissionRequest) {
        webkitPermissionRequest = request
        val requestedResources = request.resources
        for (r in requestedResources) {
            if (r == …
Run Code Online (Sandbox Code Playgroud)

android android-webview android-permissions

5
推荐指数
1
解决办法
5730
查看次数

使用 JavaScript 获取 GPS 位置

我正在使用平板电脑,正在处理 html 应用程序,希望在不使用任何网络连接的情况下获取 GPS 位置。请建议我简单的方法。

html javascript gps

3
推荐指数
1
解决办法
5050
查看次数

Xamarin Forms WebView 地理位置问题

我正在尝试在 xamarin 表单应用程序中启用 webview 以获取 android 设备的当前 GPS 坐标。当前,当在手机或笔记本电脑上的 chrome 浏览器中打开时,webview/网站将返回 GPS 坐标,但在应用程序中不会。试图让这个工作尽可能简单,并在之后扩展它。

到目前为止的代码:XAML 页面:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="UITrial.Page2"
             BackgroundColor = "#f0f0ea">
    <Label Text="{Binding MainText}" VerticalOptions="Center" HorizontalOptions="Center" />

  <WebView Source="https://danu6.it.nuigalway.ie/OliverInternetProgramming/project/Loginproject.html" />

</ContentPage>
Run Code Online (Sandbox Code Playgroud)

HTML页面:

<!DOCTYPE html>
<html>
<body>

<p>Click the button to get your coordinates.</p>

<button onclick="getLocation()">Try It</button>

<p id="demo"></p>

<script>
var x = document.getElementById("demo");

function getLocation() {
    if (navigator.geolocation) {
        navigator.geolocation.watchPosition(showPosition);
    } else { 
        x.innerHTML = "Geolocation is not supported by this browser.";}
    }

function showPosition(position) …
Run Code Online (Sandbox Code Playgroud)

android webview xamarin xamarin.forms

3
推荐指数
1
解决办法
2858
查看次数