标签: webviewclient

如何使 WebView 可点击 False 和 True

我在我的应用程序中使用 Web 视图,一切对我来说都很好,但我遇到了小问题。当 Url 包含免责声明时,我不应该允许 web 视图应该是可点击的。但在所有其他情况下,网络视图应该是可点击的。

 @Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
                    if(url.contains("Disclaimers")){
                        view.setClickable(false);

                        //Here clickable should be fasle.

                        return true;
                    }else{
                        // In this clickable should be true.
                        view.setClickable(true);

                        if(!url.contains("/Home.mvc/Trade")){
                            showProgressLayout();
                        }
              if(url.contains("/Home.mvc/Trade")){
                            openTradeScreen(url);
                        }else{
                            view.loadUrl(url); 
                        }                 
                        return true;
                    }
                }
Run Code Online (Sandbox Code Playgroud)

android android-webview webviewclient

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

Web 视图不适用于某些特定 url

public class MainActivity extends AppCompatActivity {

    String url = "https://www.pinterest.com";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        WebView webView = findViewById(R.id.webview);
        webView.getSettings().setJavaScriptEnabled(true);
        webView.getSettings().setLoadWithOverviewMode(true);
        webView.getSettings().setUseWideViewPort(true);
        webView.setWebViewClient(new WebViewClient(){

            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);

                return true;
            }
            @Override
            public void onPageFinished(WebView view, final String url) {
            }
        });

        webView.loadUrl(url);       
    }
}
Run Code Online (Sandbox Code Playgroud)

Web View 未在应用程序中加载“ https://www.pinterest.com ”,但它正在使用意图与 chrome 浏览器一起工作。我尝试了其他网址,它正在工作。使用 webview加载“ https://www.pinterest.com ”时,获得如下输出屏幕 在此处输入图片说明

android webview webviewclient pinterest android-studio

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

android应用程序正在打开浏览器应用程序而不是webView,我该如何阻止它?

现在,当我按下一个特定按钮时,它启动了一个打开webView的网页的意图,而是打开一个浏览器应用程序,显示不是我想要的地址栏.

经过一些研究后我发现我可以使用shouldOverrideUrlLoading()方法来阻止这种情况发生,只是在webView中打开页面,但我不知道如何在我的代码中实现这个方法,非常感谢帮助!

这就是我在打开网页的课程中所拥有的:

public class Codes extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.codes);

    View titleView = getWindow().findViewById(android.R.id.title);
    if (titleView != null) {
      ViewParent parent = titleView.getParent();
      if (parent != null && (parent instanceof View)) {
        View parentView = (View)parent;
        parentView.setBackgroundColor(Color.rgb(228, 108, 10));
      }
    }

    WebView codes = (WebView)findViewById(R.id.codesWebView);
    codes.getSettings().setJavaScriptEnabled(true);
    codes.loadUrl("http://dev10.affirmaconsulting.com:24009/keyentry");
    shouldOverrideUrlLoading(codes, "http://dev10.affirmaconsulting.com:24009/keyentry");

    }
}
Run Code Online (Sandbox Code Playgroud)

java url android webview webviewclient

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

如何监听 webview url 单击并启用/禁用操作栏上的按钮

我正在开发一个应用程序,用于webview加载某些网站。我还定制了actionbar网站导航button。这是我的布局的视图:

在我看来如何。

当我加载网站时,我的所有三个按钮都是可见的,但我希望它们仅在用户单击某个 URL 时才可见,以便用户轻松理解这些按钮的用途。

我已将所有功能添加到这些按钮中。这是我的代码:

website_back = (ImageButton) cView.findViewById(R.id.website_back);
website_forward = (ImageButton) cView.findViewById(R.id.website_forward);
website_refresh = (ImageButton) cView.findViewById(R.id.website_refresh);

if (v.getId() == R.id.website_back) {
    webview.goBack();
}
if (v.getId() == R.id.website_forward) {
    webview.goForward();
}
if (v.getId() == R.id.website_refresh) {
    webview.reload();
}
Run Code Online (Sandbox Code Playgroud)

我的网络视图客户端:

private class HelloWebViewClient extends WebViewClient {

    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        progress.setVisibility(View.VISIBLE);
        super.onPageStarted(view, url, favicon);
    }

    public void onPageFinished(WebView view, String url) {
        progress.setVisibility(View.GONE);
        super.onPageFinished(view, url);
    }

    public boolean shouldOverrideUrlLoading(WebView view, …
Run Code Online (Sandbox Code Playgroud)

android android-webview webviewclient android-actionbar

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

Android 请求在 webview 中使用位置的权限

我有一个使用 webview 的应用程序,webview 里面有一个地图,我让它可以让用户使用以下代码自动找到用户位置:

清单文件权限:

<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)

网页视图活动:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.map_layout);

    WebViewSettings();

    LoadWebPage(urlString);
}
Run Code Online (Sandbox Code Playgroud)

网页视图设置:

@SuppressLint("SetJavaScriptEnabled")
public void WebViewSettings(){

    webView = (WebView) findViewById(R.id.webview);
    webView.canGoBack();

    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
    webView.getSettings().setBuiltInZoomControls(true);
    webView.getSettings().setSupportZoom(true);
    webView.getSettings().setLoadWithOverviewMode(true);
    webView.setWebViewClient(new WebViewClientSetup());
    webView.setWebChromeClient(new GeoWebChromeClient());
    webView.getSettings().setGeolocationEnabled(true);

    myTimer = new Timer();
    //Start this timer when you create you task
    myTimer.schedule(new loaderTask(), 20000);

}
Run Code Online (Sandbox Code Playgroud)

WebView客户端:

public class WebViewClientSetup extends WebViewClient {

    @Override
    public …
Run Code Online (Sandbox Code Playgroud)

java android webview webviewclient webchromeclient

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

如果 WebView url 包含字符串,则执行某些操作

我有一个WebView在其中加载网页的程序。在此网页中用户需要执行一些操作。当用户到达特定网页时需要执行特定操作。此操作应该自动执行。

如何连续检查 WebView 中的当前 URL 并将操作连接到特定条件?

示例代码是:

String url = wv.getUrl();
if (url.contains("string"))
{
    code = url.substring(url.lastIndexOf("value=") + 6);
    dialog.dismiss(); //action
}
Run Code Online (Sandbox Code Playgroud)

但是,我可以将其放在哪里,以便它不断检查WebView? 任何帮助表示赞赏。

android webview webviewclient webchromeclient android-studio

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

WebView onProgressChanged()未调用

我有一个WebView,可以很好地加载URL.我已经获得了一个WebViewClient并扩展了onProgressChanged,但据我所知,它没有被调用.有任何想法吗?

 wv.setWebViewClient(new WebViewClient(){

        public void onProgressChanged(final WebView view, final int newProgress) {
            Log.e("APPNAME", String.valueOf(newProgress));
            if (newProgress < 100 && progressBar.getVisibility() == ProgressBar.GONE){
                progressBar.setVisibility(ProgressBar.VISIBLE);
            }
            progressBar.setProgress(newProgress);
            progressTxt.setText(newProgress);
            if (newProgress == 100){
                progressBar.setVisibility(ProgressBar.GONE);
            }
        }

        public void onReceivedError(WebView view, int errorCode, String description, String failingUrl){
             InputStream is = null;
             byte[] buffer = null;
                try {
                    is = getAssets().open("error.html");
                    int size = 0;
                    size = is.available();
                    buffer = new byte[size];
                    is.read(buffer);
                    is.close();
                }
                catch(Exception e){

                }
                String str = new String(buffer);
                str = …
Run Code Online (Sandbox Code Playgroud)

android webview webviewclient android-progressbar

0
推荐指数
1
解决办法
6746
查看次数

Android webview javascript 不适用于 API 18 或更高版本

我想WebView通过操作一些 DOM 元素来显示一个网站。我的意思是,我想删除一个特殊的 div 元素或用某些东西替换它。为此,我做了这样的事情:为了替换我使用这个模型的东西

document.getElementById("demo").innerHTML = "Hello World!";
Run Code Online (Sandbox Code Playgroud)

我将它应用到 Android 上WebView是这样的:

public class WebClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }
    @Override
    public void onPageFinished(WebView view, final String url) {
             view.loadUrl("javascript:document.getElementById(\"jumbotron-company\").innerHTML = \"\";");
    }
}
Run Code Online (Sandbox Code Playgroud)

它可以在我的 API 为 18 的设备上工作,但不能在 API 大于 18 的模拟器或设备上工作

javascript android webview webviewclient

0
推荐指数
1
解决办法
3703
查看次数

使用ProgressBar为WebViewClient显示进度

我正在使用WebViewClient加载网页,我想显示我的代码的进度条.我的代码没有逐渐加载进度.它只显示100%的进展.如何根据网页加载时间设置进度?

出于我的目的,我只需在WebView上加载" https://www.google.com ".请帮忙.谢谢.代码如下所示:

活动文件

public class MainActivity extends Activity {

private WebView webView;
private ProgressBar progressBar;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    int vc = Color.parseColor("#feca01");


    progressBar = (ProgressBar) findViewById(R.id.determinateBar);
    progressBar.getProgressDrawable().setColorFilter(
            vc, android.graphics.PorterDuff.Mode.SRC_IN);
    webView = (WebView) findViewById(R.id.webView);
    webView.setWebViewClient(new MyBrowser());
    webView.getSettings().setJavaScriptEnabled(true);
    webView.loadUrl("http://deelay.me/5000/http://www.google.com");

}

private class MyBrowser extends WebViewClient {

    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon)
    {
        super.onPageStarted(view, url, favicon);
        progressBar.setVisibility(View.VISIBLE);
        progressBar.incrementProgressBy(10);

    }

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }

    @Override …
Run Code Online (Sandbox Code Playgroud)

android webview webviewclient android-progressbar

0
推荐指数
1
解决办法
3327
查看次数