标签: android-webview

Android webview,在assets文件夹中加载javascript文件

我已经看过很多次这个问题,但仍然无法让我的代码工作.

我希望我的webview加载一些URL(比如www.google.com),然后应用一些存储的javascript assets/jstest.js,其中包含以下内容:

function test(){
document.bgColor="#00FF00"; //turns to green the background color
}
Run Code Online (Sandbox Code Playgroud)

这是我尝试加载JS的地方:

@Override  
public void onPageFinished(WebView view, String url){
    view.loadUrl("javascript:(function() { "
                + " document.bgColor='#FF0000';" //turns to red the background color
                + " var script=document.createElement('script'); "
                + " script.setAttribute('type','text/javascript'); "
                + " script.setAttribute('src', 'file:///android_asset/jstest.js'); "
                + " script.onload = function(){ "
                + "     test(); "
                + " }; "
                + " document.getElementsByTagName('head')[0].appendChild(script); "
                + "})()"); 
} 
Run Code Online (Sandbox Code Playgroud)

我知道这里的javascript有效,因为背景颜色实际上变为红色,但由于某种原因它不会加载jstest.js.我认为问题可能在文件路径中(我确定javascript代码的每一行都是正确的),但它看起来对我来说是正确的.该文件位于正确的文件夹中.

我错过了什么?

编辑:

由于WebResourceResponse课程仅适用于API …

javascript android webview android-webview

16
推荐指数
1
解决办法
4万
查看次数

设置WebView以查看桌面站点和非移动站点

我已经做了很多关于Stack Overflow和大量Google研究的研究,但我找不到任何实际工作对我来说.我希望该网站能够查看桌面网站而不是移动网站.我该怎么做呢?我希望它直接转到桌面站点.

WebView myWebView = (WebView) findViewById(R.id.webview); 
    myWebView.loadUrl("http://www.apotter96.webs.com/");
}
Run Code Online (Sandbox Code Playgroud)

android android-webview

16
推荐指数
5
解决办法
4万
查看次数

如何远程调试webview?

我该如何调试/检查apk webview的元素.
我试过这个,但它只适用于chrome而不是apk.

请建议我

debugging android inspect android-webview

16
推荐指数
4
解决办法
2万
查看次数

WebView图像未显示HTTPS

我的应用程序打开一个Web视图来显示HTML页面,该页面由HTTPS托管,其中包含一个图像(来自http的图像).在某些设备上,图像没有显示,但对于所有其他设备,它的工作正常.我检查了Nexus,三星s6/s4,Moto G2等多种设备.仅在三星S4/S6上,nexus图像未显示.但对于所有其他设备,它的工作正常.即使我尝试使用WI-FI,数据载体和多个操作系统版本,但没有运气.

请帮忙解决这个问题.

一些观察: -

1)在每台设备上我都收到相同的警告: - [已阻止]' page url ' 页面是通过HTTPS加载的,但是显示来自' image source '的不安全内容:此内容也应该通过HTTPS加载.

2)如果我在网络浏览器中打开相同的页面,在所有设备上正常工作.

我的守则

mWebView = (WebView) findViewById(R.id.m_web_view);
    WebSettings webSettings = mWebView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    mainUrl = bean.getUrl();
    mWebView.loadUrl("javascript:window.location.reload( true )");
    mWebView.loadUrl(mainUrl);
    mWebView.setWebViewClient(new myWebClient());



    private class myWebClient extends WebViewClient {

    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
    //some code
    }

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        //some code
    }

    @Override
    public void onReceivedSslError(WebView view, SslErrorHandler handler,
            SslError error) {
        handler.proceed();
    }


}
Run Code Online (Sandbox Code Playgroud)

android android-webview

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

处理Android Webview中的证书错误并清除证书参数

我正在尝试找到一种在Android Webview中处理SSL证书错误的正确方法.我的目标是提供一种加载具有SSL证书错误的页面的方法,但是当用户尝试加载带有证书错误的URL时,让用户选择在警告他安全性之后加载该页面.

我在线程中找到的最接近的解决方案建议覆盖WebViewClient,如下所示:

webView.setWebViewClient(new WebViewClient() {
    @Override
    public void onReceivedSslError(final WebView view, final SslErrorHandler handler, final SslError error) {
        handler.proceed();
    }
});
Run Code Online (Sandbox Code Playgroud)

但是,这在没有用户同意的情况下基本上禁用了WebView中的SSL.

这里参考的是我找到解决方案的线程:

Android WebView SSL'安全警告'

Android上的Web View是否支持SSL?

Android WebView未加载HTTPS URL

带有客户端证书的android webview

在Android中使用WIFI时,Web视图在加载URL后显示空白/白页

无法在Android网页视图上加载特定网页

WebView显示某些链接的空白视图

Android WebView阻止从https重定向到http

忽略webview中的ssl证书请求

我继续实施了一个略有不同的版本,提示用户:

webView.setWebViewClient(new WebViewClient() {
    @Override
    public void onReceivedSslError(final WebView view, final SslErrorHandler handler, final SslError error) {
        //Showing a first confirmation dialog
        AndroidUtils.showYesNoDialog(
            //First confirmation message
            "WARNING - THIS PAGE IS NOT SECURE! Are you sure you want …
Run Code Online (Sandbox Code Playgroud)

ssl https android android-webview android-security

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

如何为WebView android发布数据

我需要将数据发布到Webview.
我从以下代码中找到了一些链接:

 WebView webview = new WebView(this);
 setContentView(webview);
 String url = "http://www.example.com";
 String postData = username=my_username&password=my_password";
 webview.postUrl(url",EncodingUtils.getBytes(postData, "BASE64"));
Run Code Online (Sandbox Code Playgroud)

但是在我的android工作室中我看到EncodingUtils已被弃用
任何人都可以帮我解决EncodingUtils将数据发布到Android WebView的替代方案吗?

android http-post android-webview

16
推荐指数
3
解决办法
3万
查看次数

在检查Android Webview时,Google Chrome Devtools已损坏

这很有效,问题在两周前就开始了.

我在Windows 10计算机上运行Chrome.我已经尝试卸载,然后在问题开始后重新安装Chrome.没变.

这是发生的事情:

1)我启动Android模拟器2)运行我的cordova应用程序3)转到chrome://检查并在模拟器上单击我正在运行的应用程序的链接.它列出正常,有效.4)DevTools窗口打开,但它没有显示所有信息.我看到屏幕的一半空白.菜单标签有时不显示,我必须最小化,然后最大化,然后他们可以显示.任何内容面板都没有滚动条,所以我实际上看不到任何有用的内容.

我试着单击屏幕右上角的齿轮图标,打开"设置",看看是否有更改的东西会修复它.没有.设置窗口打开,但它只显示左侧到设置区域的链接.设置控件的右侧应该是完全空白的.

在此输入图像描述

在此输入图像描述

我创建了一个新的模拟器,同样的事情发生了.

我有Android Studio 3.0.1

我尝试用shift-ctrl-j检查devtools

它显示出一些奇怪的错误.好像它正在加载自己的旧版本:

在此输入图像描述

请帮助,我需要在开发期间使用它来调试我的cordova应用程序,我不知道还能做什么.谢谢.

android google-chrome android-webview google-chrome-devtools cordova

16
推荐指数
2
解决办法
3243
查看次数

WebView没有在Android 9.0中加载页面?

 public abstract class MainActivity extends AppCompatActivity {

        private static WebView web;
        private WebView mWebView;
        private java.lang.String url;
        Boolean isInternetPresent = false;

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo i = manager.getActiveNetworkInfo();
            boolean hasConnect = (i != null && i.isConnected() && i.isAvailable());

            if (hasConnect) {
            } else {
            }
            Timer repeatTask = new Timer();
            repeatTask.scheduleAtFixedRate(new TimerTask() {
                @Override
                public void run() {
                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            mWebView.loadUrl("http://www.smedk.ru/wp-content/uploads/files/education/rasp/1151.htm");
                        }
                    });
                }
            }, …
Run Code Online (Sandbox Code Playgroud)

android webview android-webview

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

android不允许加载本地资源:file:/// android_asset

我正在尝试从服务器加载一个html页面,该页面包含一个链接到android sdcard .js文件的脚本.

Java的:

String url ="http://192.168.84.86:8080/test/maw/js_load_test.html";
this.loadUrl(url);
Run Code Online (Sandbox Code Playgroud)

js_load_test.html:

<script src="file:///sdcard/test.js"></script>
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

<script src="file:///android_asset/www/js/test.js"></script>
Run Code Online (Sandbox Code Playgroud)

test.js文件存在且js文件路径正确.但是在logcat:file:///sdcard/test.js:

03-18 13:01:12.467:E/Web控制台(26189):不允许加载本地资源:file:///sdcard/test.js at:0

文件:///android_asset/www/js/test.js:

03-18 13:01:53.467:E/Web Console(26189):不允许加载本地资源:file:///android_asset/www/js/test.js at:0

android android-webview cordova

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

Webview无法在android中加载https url?

我在android中实现webview应用程序.当我尝试加载https url一到两次时,它完成了活动.Agian试图加载https网址,显示网页不可用.请在下面找到我得到的图片.

在此输入图像描述

当我再次点击该网址时,它会显示网站.

我使用下面的代码加载网址.

webView = (WebView) findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true); 
webView.loadUrl("https://www.facebook.com");
webView.clearView();
webView.measure(100, 100);
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setLoadWithOverviewMode(true);



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

        @SuppressLint("NewApi")
        @Override
        public void onReceivedSslError(WebView view, SslErrorHandler handler,     SslError error) {
            super.onReceivedSslError(view, handler, error);

            // this will ignore the Ssl error and will go forward to your site
            handler.proceed();
            error.getCertificate();
        }
    });
Run Code Online (Sandbox Code Playgroud)

请任何帮助人.......

提前致谢

android android-webview httpsurlconnection

15
推荐指数
3
解决办法
3万
查看次数