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

Android如何为第三方库共享webview cookies

Android如何为第三方库共享WebView Cookies?

在Android中,为第三方库共享WebView Cookies可以通过以下步骤实现:

  1. 创建一个自定义的WebViewClient类,继承自WebViewClient,并重写shouldOverrideUrlLoading方法。在该方法中,获取WebView的CookieManager,并将其保存到SharedPreferences中。
代码语言:java
复制
public class CustomWebViewClient extends WebViewClient {
    private Context context;

    public CustomWebViewClient(Context context) {
        this.context = context;
    }

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
        CookieManager cookieManager = CookieManager.getInstance();
        String cookies = cookieManager.getCookie(request.getUrl().toString());

        SharedPreferences sharedPreferences = context.getSharedPreferences("WebViewCookies", Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putString("cookies", cookies);
        editor.apply();

        return super.shouldOverrideUrlLoading(view, request);
    }
}
  1. 在使用WebView加载网页之前,先从SharedPreferences中获取保存的Cookies,并设置到WebView的CookieManager中。
代码语言:java
复制
WebView webView = findViewById(R.id.webView);
CookieManager cookieManager = CookieManager.getInstance();

SharedPreferences sharedPreferences = getSharedPreferences("WebViewCookies", Context.MODE_PRIVATE);
String cookies = sharedPreferences.getString("cookies", "");

cookieManager.setCookie(url, cookies);

webView.setWebViewClient(new CustomWebViewClient(this));
webView.loadUrl(url);

通过以上步骤,我们可以实现在Android中为第三方库共享WebView Cookies。这样,当WebView加载网页时,会将Cookies保存到SharedPreferences中,然后在使用WebView的第三方库时,可以从SharedPreferences中获取Cookies并设置到WebView的CookieManager中,实现Cookies的共享。

推荐的腾讯云相关产品:腾讯云移动浏览器网页开发服务(https://cloud.tencent.com/product/tcb-webview

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

相关·内容

  • android读写cookie的方法示例

    做了一个android网络应用,要求用自己实现的webview去访问web网站,并且在远程登录成功之后把cookie写入到手机,保留用作以后的自动登录。找了好多资料。...的源码,发现android默认的browser增加cookie是在数据中增加记录,和window不同,win是采用一个txt文本文件的形式来存储cookie。...而android是将cookie存储在数据中。具体的介绍在《android cookie存储位置》一文中有介绍。我们都知道,android每个应用程序的存储空间都是独立的。...前面也说到cookie是存在数据中,那么如果采用非浏览器访问网络需要保留cookie的话我们就应该在database中建立cookies表,并且存入相应的cookies数据。...String DATABASE_FILE = "webview.db"; private static final String COOKIES_NAME_COL = "name"; private

    64810

    Carson带你学Android:手把手构建WebView缓存机制及资源预加载方案

    前言 由于H5具备 开发周期短、灵活性好 的特点,所以现在 Android App大多嵌入了 Android Webview 组件进行 Hybrid 开发 但我知道你一定在烦恼 Android Webview...应用场景 静态资源文件的存储,JS、CSS、字体、图片等 Android Webview会将缓存的文件记录及文件内容会存在当前 app 的 data 目录中。 d....特点 存储空间大( 5MB):存储空间对于不同浏览器不同,Cookies 才 4KB 存储安全、便捷: Dom Storage 存储的数据在本地,不需要经常和服务器进行交互 不像 Cookies每次请求一次页面...应用场景 存储临时、简单的数据 代替 **将 不需要让服务器知道的信息 存储到 cookies **的这种传统方法 Dom Storage 机制类似于 Android 的 SharedPreference...特点 充分利用数据的优势,可方便对数据进行增加、删除、修改、查询 c. 应用场景 存储适合数据的结构化数据 d.

    2.3K10

    App架构设计经验谈:技术选型

    另外,WebView里的H5有点击事件时,也许是URL链接,也许是调用JS的,都不会让它直接在该WebView里做跳转,需要拦截下来做些原生处理后跳转到一个新的原生页面,原生页面也许嵌入另一个WebView...当语言上选择了Swift,相应的一些第三方也面临着选型。比如,依赖管理,Objective-C时代大部分用CocoaPods,Swift时代,我更喜欢Carthage。...再推荐几个关于Swift的第三方: Alamofire:Swift版本的网络基础,和AFNetworking是同一个作者 AlamofireImage:基于Alamofire的图片加载 ObjectMapper...我在实际项目中思考架构时,也不会想着要用哪种模式,我只思考现阶段,以现有的人力资源和时间资源,如何才能更快更好地完成需求,适当考虑下如何为后期扩展或重构做准备。...就说我前段时间分享的Android项目重构之路系列中讲的那个架构,确切地说,都不属于上面三种架构模式之一。

    1.4K10

    地方商业银行APP安全性分析

    (3)第三方SDK androidpn做消息推送 是基于XMPP协议的推送,建议更改成最新的MQTT协议。因为XMPP推送协议本身没有很好的SSL安全机制,需要自己在上层实现,复杂。...No.2、数据存储安全 这部分主要是关注Shared_prefs\sqlite database\Cookies webview会话\Token本地存储。运行夜神android模拟器。...要不加密sqlite数据,要么加密存储在数据中的字段。...(3)Cookies webview会话 在windows上建立drozer环境检查,>nox_adb.exe forward tcp:31415 tcp:31415 //在PC上使用adb进行端口转发...(2)使用成熟安全组件、:软键盘、清场,特别是推送服务不建议使用xmpp。 (3)定期对客户端进行安全评估。(众测模式)。

    1.8K60

    QQ 音乐 Android 吃 Pie 之路

    第三方调用到了非 SDK API 接口; 针对第三方调用到了非 SDK API 接口,解决办法当然是直接查询相关资料或者联系提供方,确认是否有适配 Android P 新版本的 SDK。...当然如果第三方没有适配也没有近期适配的意向,目前有两种方法:第一种是屏蔽入口;第二种是反编译 SDK,在关键地方加上适配代码; Android 官方调用到了非 SDK API 接口; 没错!...Android 官方也会被扫描出非 SDK API 调用,针对这种情况,需要分情况讨论: ?...多进程 webview 信息访问限制:在 Android P 中为了提升系统的安全性,用户无法在多进程的 webview共享数据目录,该目录下存储的是一些 cookies、Http 缓存和其他一些永久...当下不少应用会把 webview 放在另一个进程中打开以避免内存泄漏,但是他们 cookies 的设置往往还是在主进程中,所以开发者需要仔细排查自己的应用是否有这么使用,webview 相关运行是否正常等

    3.6K120

    win10 uwp 隐私声明

    为服务用户的目的,本软件可能通过使用您的个人信息,向您提供您感兴趣的信息,包括但不限于向您发出产品和服务信息,或者与本软件合作伙伴共享信息以便他们向您发送有关其产品和服务的信息(后者需要您的事先同意)。...; 根据法律的有关规定,或者行政或司法机构的要求,向第三方或者行政、司法机构披露; 您出现违反中国有关法律、法规或者本软件服务协议或相关规则的情况,需要向第三方披露; 您是适格的知识产权投诉人并已提起投诉...Cookie的使用 在您未拒绝接受cookies的情况下,本软件会在您的计算机上设定或取用cookies ,以便您能登录或使用依赖于cookies的本软件平台服务或功能。...本软件使用cookies可为您提供更加周到的个性化服务,包括推广服务。 您有权选择接受或拒绝接受cookies。您可以通过修改浏览器设置的方式拒绝接受cookies。...这个已经是包含我可以想到的了,大家可以把它传到github然后给链接,在应用,写一个页面放一个WebView,然后把上面的转html放进去。

    48510

    手机端H5组件化4种解决方案

    移动端H5组件化开发方案 ---- 目录 需求分析方案一:iframe元素 + 内存共享方案二:Vue/React组件方案三:WebComponents方案四:WebView混合开发比较统一UI规范代码复用附...:移动端的应用平台一览 需求分析 方案一:iframe元素 + 内存共享 方案二:Vue/React组件 方案三:WebComponents 方案四:WebView混合开发 比较 统一UI规范 代码复用...缺点:需要使用第三方框架。 方案三:WebComponents 利用浏览器的WebComponentsAPI提供的H5原生组件机制,实现高性能的模块组装,且性能优于第三方的mvvm框架。...由于整个容器是Android/IOS原生的app,性能优于以H5为容器的方案。容器与厂家通过JSbridge等接口跨进程通讯。 缺点:可移植性低,需要为Android和IOS端分别开发主页。...复用的代码可以存储在CDN云端或主页仓库,厂家的业务系统可以按需使用这些公共

    2.3K20

    WebView的cookie机制 】轻松搞定WebView cookie同步问题

    在进行APP+H5混合开发的时候,一些功能是用native方法实现的,登陆,一些功能是用H5实现的。所以往往需要将在native方法登陆的状态同步到H5中避免再次登陆。...这种情况在Android开发中比较常见,因为Android不会自动同步cookie到WebView。做iOS开发则不用担心这个问题,因为iOS内部已经实现了cookie同步。...它会在本地维护每次会话的cookie(保存在data/data/package_name/app_WebView/Cookies.db)。 如图: ?...WebView通过android.webkit.CookieManager类来维护cookie。CookieManager是WebView的cookie管理类。...下面我们查看一下Cookie数据中发生的变化。 如图: ? 提示: 同步cookie要在WebView加载url之前,否则WebView无法获得相应的cookie,也就无法通过验证。

    5.8K60

    详解Android版本适配:9.0 Pie

    弃用 Apache HTTP Client 由于官方在 Android 9.0 中移除了所有 Apache HTTP Client 相关的类,因此我们的应用或是一些第三方如果使用了这些类,就会抛出找不到类的异常...不允许共享 WebView 数据目录 Android 9.0 中为了改善应用稳定性和数据完整性,应用无法再让多个进程共用同一 WebView 数据目录。...如果开发者需要在多进程中使用 WebView,则必须先调用 WebView.setDataDirectorySuffix() 方法为每个进程设置用于存储 WebView 数据的目录。...若多进程 WebView 之间需要共享数据,开发者需自己通过 IPC 的方式实现。...: Invalid Region.Op – only INTERSECT and DIFFERENCE are allowed 具体原因是官方废弃了那几个具有 Region.Op 参数的裁剪方法,

    1K20

    详解Android代码混淆实战

    如果开启了混淆,Proguard默认情况下会对所有代码,包括第三方包都进行混淆,可是有些代码或者第三方包是不能混淆的,这就需要我们手动编写混淆规则来保持不能被混淆的部分。...-keepclassmembers class * extends android.webkit.webViewClient { public void *(android.webkit.WebView..., jav.lang.String); 保留自己的项目部分代码不能被混淆(需要更具自己项目) 网络请求(如果混淆,就会发生字段的错乱,无法正常解析) 加密类 数据实体类 工具类 项目中应用到的第三方工具类...(okhttp,eventbus,rxjava等),需要根据具体的工具介绍进行操作 保留lib和compile引用的第三方jar包不被混淆的方法: java -keep class 包名.** { *...:保留引用的科大讯飞的第三方jar包不被混淆 java -keep class com.iflytek.** { *; } #网络请求等与外界通信不能混淆 -keep class com.xxxxx.function

    1.5K51

    腾讯云联手腾讯安全玄武实验室,提供「应用克隆」漏洞免费检测服务

    黑客可利用 Android 平台 WebView 控件的跨域访问漏洞(CNVD-2017-36682),远程获取用户隐私数据(包括手机应用数据、照片、文档等敏感信息),还可窃取用户登录凭证,在受害者毫无察觉的情况下实现对...目前,受影响的 APP 厂商都已完成或正在积极的修复当中,具体修复可以参考国家信息安全漏洞共享平台联合腾讯提供的临时解决方案,如下所示: 1、file 域访问为非功能需求时,手动配置 setAllowFileAccessFromFileURLs...; 2> 可能会更新的 HTML 文件放在/data/data/(app) 目录下,避免被第三方替换或修改; 3> 对 file 域请求做白名单限制时,需要对“../../”特殊情况进行处理,避免白名单被绕过...3、避免 APP 内部的 WebView 被不信任的第三方调用。...客户端 APP 应用设备相关信息(IMEI、IMSI、Android_id等)作为密钥对敏感数据进行加密。使攻击者难以利用相关漏洞获得敏感信息。

    2.4K80

    Android 9 适配怎么做? “QQ音乐”优化实录

    终于在 Android P 里官方收归了该功能的判断逻辑,Android P 和之后的版本完全可以使用官方 API 来判断全面屏,当然前提是第三方厂商按照 google 官方接口去实现。...第三方调用到了非 SDK API 接口; 针对第三方调用到了非 SDK API 接口,解决办法当然是直接查询相关资料或者联系提供方,确认是否有适配 Android P 新版本的 SDK。...当然如果第三方没有适配也没有近期适配的意向,目前有两种方法:第一种是屏蔽入口;第二种是反编译 SDK,在关键地方加上适配代码; Android 官方调用到了非 SDK API 接口; 没错!...多进程 webview 信息访问限制:在 Android P 中为了提升系统的安全性,用户无法在多进程的 webview共享数据目录,该目录下存储的是一些 cookies、Http 缓存和其他一些永久...当下不少应用会把 webview 放在另一个进程中打开以避免内存泄漏,但是他们 cookies 的设置往往还是在主进程中,所以开发者需要仔细排查自己的应用是否有这么使用,webview 相关运行是否正常等

    2.4K20

    API level targeting to 28,准备好了吗?

    第三方的sdk 例如地图项目:分享、登录注册、滴滴打车 (5). wap页面 例如:webview打开图片等、常见问题及帮助等 (6)....测试 覆盖应用中的各种请求,生效性,尤其是下载相关模块(离线资源、语音包等) 覆盖第三方,涉及请求的模块,功能正常 sdk,是否有使用http客户端,如有使用,会找不到该,抛出异常 分享sdk,qq...veridex工具会扫描APK的整个代码(包括所有第三方),并报告发现的所有使用非SDK接口的行为,该工具的扫描结果会列出应用对于三个限制名单中的接口的调用细节。...:name="android.permission.FOREGROUND_SERVICE"/> 【5.不允许共享Web View数据目录】 说明 Android 9.0 为了改善应用稳定性和数据完整性...测试 应用程序不能再跨进程共享单个WebView数据目录。

    1.3K20
    领券