u011042984 2023-11-19 08:55 采纳率: 40%
浏览 4
已结题

webview contenteditable 跳转后返回不能保存

test.html页面如下


<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>test</title>
</head>
<body>
<div  contenteditable="true" style="background-color:lightgray;" >初始值123</div>
<p></p><a href='https://www.baidu.com/'   target='_blank'>跳转_百度</a></p>
</body>
</html>

div元素设置为contenteditable="true",初始值为123。 webview加载页面后修改为456,然后点击下面的跳转链接,再返回原来test页面,发现div文本仍然是123. 很显然它调用了缓存。如果我使用textarea元素,就不会出现这个问题,请问如何在跳转返回后能保持修改后的页面?

  • 写回答

3条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-11-19 10:02
    关注

    【以下回答由 GPT 生成】

    这个问题涉及到在 Android 的 webview 中使用 contenteditable 属性时如何保存修改后的内容。根据给出的信息,我可以给出以下解决方案:

    1. 持久化保存:你可以将修改后的内容以某种形式进行持久化保存,以便在跳转链接后能够重新加载和显示。这可以通过将修改后的内容存储在本地文件、数据库或者使用缓存的方式实现。

    以下是一个示例代码,演示如何使用 SharedPreferences 进行持久化保存:

    // 获取 SharedPreferences 对象
    SharedPreferences sharedPreferences = context.getSharedPreferences("MyPrefs", Context.MODE_PRIVATE);
    
    // 编辑 SharedPreferences
    SharedPreferences.Editor editor = sharedPreferences.edit();
    editor.putString("content", content); // 将修改后的内容保存到 SharedPreferences 中
    editor.apply(); // 提交保存
    
    // 在加载页面时,从 SharedPreferences 中读取内容
    String savedContent = sharedPreferences.getString("content", "");
    
    // 将 savedContent 设置到 WebView 中显示
    webView.loadData(savedContent, "text/html", "UTF-8");
    
    1. 使用 WebView 的历史记录:你可以在跳转链接前,将当前页面的内容保存到 WebView 的历史记录中。这样,在返回页面后可以通过回退上一个历史记录的方式重新加载和显示修改后的内容。

    以下是一个示例代码,演示如何使用 WebView 的历史记录:

    // 保存当前页面到 WebView 的历史记录
    webView.saveState(bundle);
    
    // 跳转链接
    
    // 返回上一个历史记录
    if (webView.canGoBack()) {
        webView.goBack();
    } else {
        // 加载默认页面
        webView.loadUrl("file:///android_asset/default.html");
    }
    

    以上是两种可能的解决方案,你可以根据具体情况选择合适的方式来保存和加载修改后的内容。希望这可以帮到你,如果你有任何问题,请随时提问。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 11月27日
  • 已采纳回答 11月19日
  • 创建了问题 11月19日

悬赏问题

  • ¥15 2024-五一综合模拟赛
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭