首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

加载url之前无法设置Webview localStorage.setItem(javascript) (Android)

在Android平台上,加载URL之前无法直接设置Webview的localStorage。localStorage是Web Storage API的一部分,用于在浏览器中存储数据。然而,Android的Webview并没有直接暴露设置localStorage的方法。

解决这个问题的一种方法是通过JavaScript注入来设置localStorage。可以使用Webview的evaluateJavascript()方法执行JavaScript代码,从而实现设置localStorage的功能。以下是一个示例代码:

代码语言:txt
复制
// 创建一个WebView对象
WebView webView = new WebView(context);

// 加载URL之前设置localStorage
webView.setWebViewClient(new WebViewClient() {
    @Override
    public void onPageFinished(WebView view, String url) {
        // 在页面加载完成后执行JavaScript代码,设置localStorage
        view.evaluateJavascript("localStorage.setItem('key', 'value');", null);
    }
});

// 加载URL
webView.loadUrl("https://example.com");

在上述示例中,通过设置WebViewClient的onPageFinished()方法,在页面加载完成后执行JavaScript代码来设置localStorage。evaluateJavascript()方法用于执行JavaScript代码,其中的代码localStorage.setItem('key', 'value');用于设置localStorage的值。

需要注意的是,这种方法只能在页面加载完成后才能设置localStorage,因此需要确保在加载URL之前设置localStorage的需求符合业务逻辑。

推荐的腾讯云相关产品:腾讯云移动浏览器(Tencent Mobile Browser),该产品是腾讯云提供的移动浏览器解决方案,支持在移动设备上加载网页并执行JavaScript代码。您可以通过以下链接了解更多信息:腾讯云移动浏览器

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android 9.0使用WebView加载Url时,显示页面无法加载

最近使用WebView加载Url显示页面,因为之前已经使用过很多次这种方式了,打包后在6.0的测试机上测试没什么问题,然后安心的将包给测试,测试大佬的手机系统是Android 9.0的,所以就出现了页面无法加载的情况...要解决这个问题有以下三种方案,也适用于http无法访问网络的问题: 1.将url路径的地址由http改成https,这就需要让后台大佬更改了。...3.既然默认情况下禁用明文支持,那我们就手动设置启动支持明文,这就需要 使用:android:usesCleartextTraffic=“true” | “false” true: 是否使用明文传输...,也就是可以使用http false: android 9.0 默认情况下使用https [4d0its87cy.png] 在这里插入图片描述 那就是添加:android:usesCleartextTraffic...---- 小编整理了一份Android电子书籍,需要的童鞋关注公众号回复:"e_books" 即可获取哦!

6.7K30

Android 拦截WebView加载URL,控制其加载CSS、JS资源

端想让客服端根据需求来缓存网页,也就是说web端在设置了http响应头,我根据这个头来拦截WebView加载网页,去执行网络加载还是本地缓存加载。...这个需求之前一直没听说过,在网上搜了一下,发现有拦截WebView加载网页这个方法,研究了一下,最终实现了,今天小编分享给大家这个开发经验: WebView缓存机制 1.缓存模式 AndroidWebView...的缓存缓存机制了之后来看看到底怎么拦截WebView加载网页: 实现原理 1.要想拦截WebView加载网页我们必须重写WebViewClient类,在WebViewClient类中我们重写shouldInterceptRequest...好像都不行,无法对应关系啊。...,更稳定,屏蔽安卓不同版本的webview的兼容性问题 生命就在于折腾,小编就喜欢折腾,将Android折腾到底O(∩_∩)O~~

3.7K20

Android获取WebView加载url的请求错误码 【推荐】

例如需求,我有一个WebView 加载一个url, 该url对应的网页本身自带下拉刷新 ,但是网页本身会有出现400 500 等异常请求错误码 这时候网页加载失败,页面本身的下拉是无法使用的,要求重新加载页面的话就需要在...webview外层套一个android下拉控件(SwipeRefreshLayout) 这样导致下拉一定用的SwipeRefreshLayout的下拉 最终要求是如果页面加载成功的话,用页面本身的下拉,...如果页面加载失败的话,用android下拉控件的下拉 ——————————————————————————————————————————————– 解决办法就是监听加载url的请求的错误码,对SwipeRefreshLayout.setEnabled...@Override public void onReceivedTitle(WebView view, String title) { super.onReceivedTitle...获取WebView加载url的请求错误码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。

1.2K20

【错误记录】Android WebView 报错 ( 网页无法打开 位于 baiduboxapp:speec... 的网页无法加载, 因为 net::ERR_UNKNOW_URL_SCHEME )

一、错误记录 报错信息 : 网页无法打开 位于 baiduboxapp://speech/startVoiceSearch?...¶ms={“voiceSource”:“home_naver_long”}&jumpTime 的网页无法加载, 因为 net::ERR_UNKNOW_URL_SCHEME ; 二、解决方案 出现该错误的原因是...WebView 尝试加载不支持的 URL 链接 , 目前 WebView 只能支持加载 http 或 https 协议的 URL 地址 ; 当前要加载的地址是 " baiduboxapp://speech...函数 , 获取要加载URL 地址 , 如果发现了要加载不支持的 URL 协议地址 ,则启动对应的应用加载该地址 , 如 百度 / 淘宝 / 京东 等应用 ; 解决方案 : 为 WebView 设置...URL 协议,不直接加载这些链接 , 而是直接启动 ; 通用处理方案如下 , 一般是启动该 url 对应的应用 ; WebView webView = findViewById(R.id.webView

3K10

Android项目实战(五十六):获取WebView加载url的请求错误码

例如需求,我有一个WebView 加载一个url, 该url对应的网页本身自带下拉刷新 ,但是网页本身会有出现400 500 等异常请求错误码 这时候网页加载失败,页面本身的下拉是无法使用的,要求重新加载页面的话就需要在...webview外层套一个android下拉控件(SwipeRefreshLayout) 这样导致下拉一定用的SwipeRefreshLayout的下拉 最终要求是如果页面加载成功的话,用页面本身的下拉,...如果页面加载失败的话,用android下拉控件的下拉 --------------------------------------------------------------------------...------------------------------------------------------------------ 解决办法就是监听加载url的请求的错误码,对SwipeRefreshLayout.setEnabled...() 来控制是否允许下拉刷新 监听对应6.0+  6.0以下 分别为两种实现方式: 一、Android 6.0+ 判断请求码 mWebView.setWebViewClient(new

1.2K20

Carson带你学Android:你不知道的 WebView 使用漏洞

Android 4.2版本之前Android 4.2版本之前采用**拦截prompt()**进行漏洞修复。...加载页面前加载一段本地的 JS 代码,原理是: 让JS调用一Javascript方法:该方法是通过调用prompt()把JS中的信息(含特定标识,方法名称等)传递到Android端; 在Android...3. setAllowUniversalAccessFromFileURLs() // 设置是否允许通过 file url 加载Javascript 可以访问其他的源(包括http、https等源)...即使把setAllowFileAccessFromFileURLs()和setAllowUniversalAccessFromFileURLs()都设置为 false,通过 file URL 加载javascript...例:应用实现了下载功能,对于无法加载的页面,会自动下载到 sd 卡中;由于 sd 卡中的文件所有应用都可以访问,于是可以通过构造一个 file URL 指向被攻击应用的私有文件,然后用此 URL 启动被攻击应用的

1.1K10

Android:你不知道的 WebView 使用漏洞

Android 4.2版本之前Android 4.2版本之前采用拦截prompt()进行漏洞修复。...WebView 加载页面前加载一段本地的 JS 代码,原理是: 让JS调用一Javascript方法:该方法是通过调用prompt()把JS中的信息(含特定标识,方法名称等)传递到Android端;...3. setAllowUniversalAccessFromFileURLs() // 设置是否允许通过 file url 加载Javascript 可以访问其他的源(包括http、https等源)...即使把setAllowFileAccessFromFileURLs()和setAllowUniversalAccessFromFileURLs()都设置为 false,通过 file URL 加载javascript...例:应用实现了下载功能,对于无法加载的页面,会自动下载到 sd 卡中;由于 sd 卡中的文件所有应用都可以访问,于是可以通过构造一个 file URL 指向被攻击应用的私有文件,然后用此 URL 启动被攻击应用的

3.2K20

WebView深度学习(三)之WebView的内存泄漏、漏洞以及缓存机制原理和解决方案

进行注解从而避免漏洞攻击 Android 4.2版本之前:采用拦截prompt()进行漏洞修复。...WebView 加载页面前加载一段本地的 JS 代码,原理是: 1) 让JS调用一Javascript方法:该方法是通过调用prompt()把JS中的信息(含特定标识,方法名称等)传递到Android...(4) setAllowUniversalAccessFromFileURLs() 设置是否允许通过 file url 加载Javascript 可以访问其他的源(包括http、https等源),在...false,通过 file URL 加载javascript仍然有方法访问其他的本地文件:符号链接跨源攻击(前提是允许 file URL 执行 javascript,即webView.getSettings...例:应用实现了下载功能,对于无法加载的页面,会自动下载到 sd 卡中;由于 sd 卡中的文件所有应用都可以访问,于是可以通过构造一个 file URL 指向被攻击应用的私有文件,然后用此 URL 启动被攻击应用的

2.7K10

Android开发笔记(六十四)网页加载与JS调用

如果不做设置,4.2.2及之前版本自适应时可能会出现表格错乱的情况。 以上是网页与容器适配的设置。 setDomStorageEnabled : 设置是否启用本地存储。...因为WebView加载网页是异步的,所以loadUrl方法调用js无法直接获得返回值。多数情况只能在js代码中回调Android方法,从而间接获取Android调用js的返回值。...3、evaluateJavascript是Android4.4.2之后才引入的新方法,如果是4.4.2之前Android版本,需要注意做兼容处理。...对于Android开发来说,PhoneGap其实就是在assets下面新建了www目录,然后入口Activity通过嵌入WebView加载www下的html页面,接下来就是在各个html之间互相跳转,...URL wv_web.loadUrl(url); //加载本地网页 //wv_web.loadUrl("file:///android_asset/example.html");

6.3K10

Android从零单排系列十七】《Android视图控件——WebView

// 在WebView加载URL return true; } }); 若要启用JavaScript支持: webView.getSettings().setJavaScriptEnabled...很早之前也写过一篇Android和js交互的文章:《浅谈Android和js的交互问题》 值得注意的是,为了确保应用程序的安全性,建议在WebView中进行URL验证、内容过滤以及限制JavaScript...android:layout_height:设置WebView的高度,可选值同上。 android:layout_gravity:设置WebView在布局中的对齐方式,例如居中对齐。...android:webViewClient:设置自定义的WebViewClient,用于处理页面加载事件和请求。...android:webChromeClient:设置自定义的WebChromeClient,用于处理与JavaScript相关的通知和交互。

29410

WebView的使用及实战

webView的基本使用 大概可以分为以下步骤 - 配置权限 - 创建webView - 配置webView(是否支持js,是否由系统浏览器打开) - 加载数据 第一步,别忘了 在AndroidMainfest...return true; } }); 如果想显示加载进度的话,可以给webView 设置setWebChromeClient,并重写onProgressChanged()方法,至于onReceivedTitle...); ---- webView请求错误时候的处理 因为系统自带的 错误页面太丑了,所以我们经常会对其 进行处理,目前本人了解到的主要有两种方法 - 加载本地的控件,显示 错误信息 - 加载自己...= null) { sessionid = cookieval.substring(0, cookieval.indexOf(";")); } 发送设置cookie: URL url = new...加载url之前,否则WebView无法获得相应的cookie,也就无法通过验证。

85910

Android中Java和JavaScript交互

Android中Java和JavaScript交互 Android提供了一个很强大的WebView控件用来处理Web网页,而在网页中,JavaScript又是一个很举足轻重的脚本。...WebView开启JavaScript脚本执行 WebView设置JavaScript调用的交互接口。 客户端和网页端编写调用对方的代码。...Android在4.4之前并没有提供直接调用js函数并获取值的方法,所以在此之前,常用的思路是 java调用js方法,js方法执行完毕,再次调用java代码将值返回。...疑问解答 Alert无法弹出 你应该是没有设置WebChromeClient,按照以下代码设置 myWebView.setWebChromeClient(new WebChromeClient() {}...(WebView view, String url) { super.onPageFinished(view, url); //在这里执行你想调用的js函数 } }); Uncaught

1.5K60

WebView深度学习(一)之WebView的基本使用以及Android和js的交互

前言:随着市场需求的不断变化,原生安卓已经无法满足客户的需要了,现在很多app都在使用Android和h5的交互实现某些功能,比如商品详情页,文章详情页面,商品点评页面,还有某些复杂的展示页面等等,设置登陆页面都有可能是和...WebView控件功能强大,除了具有一般View的属性和设置外,还可以对url请求、页面加载(直接使用html文件(网络上或本地assets中)作布局)、渲染Wb页面、页面交互(和js交互)进行强大的处理...子类 WebSettings webSettings = webView.getSettings(); //如果访问的页面中要与Javascript交互,则webview必须设置支持Javascript...//设置结束加载函数 @Override public void onPageFinished(WebView view, String url) {...实际开发中,Android更多的是调用远程JS代码,即将加载的JS代码路径改成url即可。

5.9K31

Android中Java和JavaScript交互

Android提供了一个很强大的WebView控件用来处理Web网页,而在网页中,JavaScript又是一个很举足轻重的脚本。本文将介绍如何实现Java代码和Javascript代码的相互调用。...WebView开启JavaScript脚本执行 WebView设置JavaScript调用的交互接口。 客户端和网页端编写调用对方的代码。...); 调用js有参数有返回值的函数 Android在4.4之前并没有提供直接调用js函数并获取值的方法,所以在此之前,常用的思路是 java调用js方法,js方法执行完毕,再次调用java代码将值返回...疑问解答 Alert无法弹出 你应该是没有设置WebChromeClient,按照以下代码设置 1 myWebView.setWebChromeClient(new WebChromeClient()...如果你不这样做的话,在4.2以以后的平台上,网页无法访问到你的方法。

89820

【错误记录】Android WebView 报错 ( 网页无法打开 位于 http:... 的网页无法加载, 因为 net::ERR_CLEARTEXT_NOT_PERMITTED )

一、错误记录 ---- 报错信息 : 网页无法打开 位于 http://… 的网页无法加载, 因为 net::ERR_CLEARTEXT_NOT_PERMITTED ; 二、解决方案 ---- 在...Android 9.0 及以上的系统版本中,系统默认情况下禁止应用程序使用不安全的明文流量进行网络连接,以提高用户的安全性。...这意味着,如果应用程序尝试连接到一个不安全的 HTTP 网站,将收到 net::ERR_CLEARTEXT_NOT_PERMITTED 错误 ; 也就是说应用中的 WebView 尝试显示 HTTP 站点时就会报...net::ERR_CLEARTEXT_NOT_PERMITTED 错误 ; 解决方案一 在 AndroidManifest.xml 清单文件中的 application 节点配置 android:usesCleartextTraffic...="true" 属性 , 允许应用程序使用明文流量进行网络连接,该操作会降低应用程序的安全性 ; <application android:usesCleartextTraffic="true

2.7K30
领券