在 Android Webview 中,我可以修改网页的 DOM 吗?

2023-11-28

假设我通过 webview 加载第 3 方 URL。

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        webview = (WebView) findViewById(R.id.webview);
        webview.setWebViewClient(new HelloWebViewClient());
        webview.getSettings().setJavaScriptEnabled(true);
        webview.setWebChromeClient(new MyWebChromeClient());
        webview.loadUrl("http://ebay.com");         
    }

我可以吗向此 WebView 中注入一些内容用我自己的徽标替换 eBay 徽标?


扩展 CommonsWare 的正确答案:

WebView webview = new WebView();
webview.setWebViewClient(new WebClient());
webView.getSettings().setJavaScriptEnabled(true);
webview.loadUrl("stackoverflow.com");

然后在WebClient中:

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

    @Override
    public void onPageFinished(WebView view, String url) 
    {       
        // Obvious next step is: document.forms[0].submit()
        view.loadUrl("javascript:document.forms[0].q.value='[android]'");       
    }
}

简而言之,您等待页面加载。然后你 loadUrl("javascript:[这里是你的 javascript]")。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Android Webview 中,我可以修改网页的 DOM 吗? 的相关文章

  • 为某个时刻添加持续时间 (moment.js)

    时刻版本 2 0 0 阅读文档后 http momentjs com docs manipulating add 我认为这很简单 Chrome 控制台 var timestring1 2013 05 09T00 00 00Z var tim
  • 数据未刷新“DynamiteModule:未找到 com.google.firebase.auth 的本地模块描述符类”

    我已经使用 Firebase 很长时间了 到目前为止 除了以下场景之外 一切都很好 有时我注意到我的应用程序不再获取新数据 我正在用一个活跃的监听器监听变化 并且我确实有keepSynced set to true 发生这种情况时 我会在日
  • Android:如果任务管理器终止,则重新调用应用程序

    如果应用程序线程被任务管理器杀死 则应用程序线程将关闭 需要重新调用应用程序 就像它被其他应用程序或任务管理器杀死一样 任何想法 您必须使用 START STICKY 命令运行后台服务 只需扩展 Service 并重写 onCommand
  • Android 媒体播放器搜索栏

    我有一个创建 播放和处理媒体播放器 只是音频 的服务 但我在主要活动中有一个搜索栏 我想自然地显示音频文件的进度并允许用户搜索到不同的位置 我花了很长时间才弄清楚 将 UI 中的搜索栏连接到服务中的媒体播放器的最佳或正确方法是什么 我将这样
  • 从 Android 访问云存储

    我一直无法找到任何有关如何从 Android 应用程序使用云存储的具体文档 我确实遇到过这个客户端库 https cloud google com storage docs reference libraries然而 Google Clou
  • 如何使用共享首选项在两个 Android 应用程序之间共享数据?

    我有两个应用程序 App1 和 App2 我想使用共享首选项在 App1 中保存数据并在 App2 中访问 反之亦然 我可以在 App1 中保存数据并在 App2 中访问数据 但反之则不行 这就是我现在正在做的 在清单中 android s
  • NodeJS - 将相对路径转换为绝对路径

    In my 文件系统我的工作目录在这里 C temp a b c d 在 b bb 下有文件 tmp txt C temp a b bb tmp txt 如果我想从工作目录转到该文件 我将使用以下路径 bb tmp txt 如果该文件不存在
  • 基于范围内变量的角度设置形式动作

    我一直在尝试设置一个搜索表单 可以在其中注入表单操作属性 在我的表格中我有
  • 推特更新状态

    我正在通过 twitter4j 将 Twitter 集成到 Android 我可以成功阅读我发布的推文 现在我试图用它发布推文 但我不能 我收到如下奇怪的警告 02 01 16 28 43 298 WARN System err 729 4
  • 文件缓存:查询字符串与上次修改时间?

    我正在研究缓存网站资源的方法 并注意到大多数与我类似的网站都使用查询字符串来覆盖缓存 例如 css style css v 124942823 后来 我注意到每当我保存 style css 文件时 最后修改的标头都会 更新 使得查询字符串变
  • iPhone 上的锁定方向 UIWebView

    有没有办法锁定 UIWebView 的方向 使用 Obj C JS 还是 Html 我不想有按钮或任何东西 我只想在应用程序打开时将其锁定为纵向 好像这个堆栈溢出帖子 https stackoverflow com questions 43
  • 如何向开关对象添加/更改波纹效果

    下面是我自定义的开关 红圈是默认的波纹效果 我发现设置一个波纹可绘制作为开关的背景 控制波纹的颜色
  • 如何从图库动态卸载图像?

    我有自定义 ImageView public class ShadowedImageView extends ImageView private Paint mPaint public Bitmap bitmap null private
  • 如何让php页面从html页面接收ajax post

    我有一个非常简单的表单 其中有一个名字输入字段 我捕获了表单数据 并使用标准 jQuery 发布方法通过 ajax 将其传输到 PHP 页面 但是 我根本无法从 PHP 页面获得任何在服务器端捕获数据的响应 我不确定我做错了什么或缺少什么
  • 如何检测日期选择器对话框的取消单击?

    我正在使用以下 日期选择器的示例 http developer android com guide tutorials views hello datepicker html http developer android com guide
  • 如何解决android程序中的警告“从不本地读取”

    为什么我收到警告说 The field testscreen ScaleAnimToShow mVanishAfter is never read locally testscreen java testscreen src com tes
  • 如何计算一行中Flexbox项目的数量?

    网格是使用 CSS flexbox 实现的 Example http jsbin com jumosicasi edit html css js output 本示例中的行数为 4 因为我出于演示目的固定了容器宽度 但是 实际上 它可以根据
  • 测试 jQueryUI 是否已加载

    我正在尝试调试网站 并且我认为 jQueryUI 可能未正确加载 如何测试 jQueryUI 是否已加载 if jQuery ui UI loaded OR if typeof jQuery ui undefined UI loaded 应
  • HTML5 地理定位 - 在 iOS 上无法始终工作

    目前正在使用 HTML5 地理定位 我已经在所有网络浏览器上测试了它 它似乎工作正常 然而 当我在 iPad 上测试地理定位时 它在 iPad mini 上始终有效 但当我将其放在更大的 iPad iPad 2 上时 位置似乎并不总是有效
  • 如何强制下载图片?

    我的页面上有一个动态生成的图像 如下所示 img src 我不想告诉我的用户右键单击图像并点击保存 而是想公开一个下载链接 单击该链接将提示下载图像 如何实现这一目标 最初我在 js 中尝试这样做 var path my image att

随机推荐

  • 如何在ash shell中保持程序在后台运行

    我需要通过 SSH 连接到嵌入式设备 启动后台程序 然后断开连接并保持后台进程运行 问题是嵌入式设备正在使用 ash shell 不是 bash 或其他任何东西 因此 nohup 和 screen 不可用 我还没有找到任何方法来断开灰烬中的
  • Android Edittext 中输入类型为数字的多行是否可能?

    当android edittext输入类型为数字时 是否可以制作多行 我已经在 xml 文件中尝试过以下内容 android inputType number textMultiLine 但这没有用 当输入类型为数字时 是否无法制作多行 请
  • Jersey 2.0 的依赖注入

    在没有任何 Jersey 1 x 知识的情况下从头开始 我很难理解如何在 Jersey 2 0 项目中设置依赖项注入 我还了解到 HK2 在 Jersey 2 0 中可用 但我似乎找不到有助于 Jersey 2 0 集成的文档 Manage
  • 在 Android 中使用网络服务发现出现内部错误

    在第一次使用示例和 NSDManager 实现期间开发者页面上的教程 应用程序成功启动发现并找到设备 不过现在好像已经坏掉了 程序启动时 经过一番初始化后 代码进入如下方法并成功运行 public void discoverServices
  • 如何向 Outlook 发送富文本格式的电子邮件?

    通过分配 text html 内容类型字符串以 HTML 格式发送电子邮件 到 Outlook 非常有效 如下所示 using MailMessage message new MailMessage message From new Mai
  • 对数组字段执行更新时,无法使用字符串字段名称 [$] 附加到数组

    rowsI 尝试对记录数组中的每个字段执行 mongodb 更新 示例架构如下 id ObjectId 508710f16dc636ec07000022 summary uid ABCDEF username bigcheese name
  • 如何有选择地导入 ES2015 模块函数,但具有命名空间?

    我正在开始使用 Rollup 和 D3 版本 4 它是用 ES2015 模块编写的 我使用传统的 D3 命名空间 d3 编写了一些代码 现在我想使用 Rollup 创建自定义捆绑包 我想使用 tree shaking 因为我可能只使用 d3
  • 如何确保 Python while 循环需要特定的时间来运行?

    我正在用 while 循环读取串行数据 但是 我无法控制采样率 代码本身似乎需要 0 2 秒才能运行 所以我知道我无法比这更快了 但我希望能够精确控制采样速度 我觉得我可以使用 睡眠 来做到这一点 但问题是 在不同的点 循环本身可能需要更长
  • 检查 Firebase 中是否存在文档并根据图标返回

    我想检查 Firebase 集合中是否存在特定文档 据此 我的应用程序应该显示一个彩色图标或灰色图标 我试图用一个返回布尔值的方法来解决这个问题 在我的构建小部件中 我调用该方法并分配正确的图标 这是我检查文档是否存在的方法 checkIf
  • 设置自定义字体的自定义字体内存泄漏

    以下用于设置自定义字体的代码会减慢我的整个应用程序的速度 我该如何修改它以避免内存泄漏并提高速度并很好地管理内存 public class FontTextView extends TextView private static final
  • 使用递归的幂函数

    我必须用Java 编写一个power 方法 它接收两个整数 它们是正数还是负数并不重要 它的复杂度应该是O logN 它还必须使用递归 我当前的代码得到两个数字 但我一直输出的结果为零 我不明白为什么 import java util Sc
  • MVVM 中的控制器,如何从视图模型获取信息到它的控制器?

    我们正在使用 MVVM 模式构建一个应用程序 我们有使用 DI 连接所有视图和视图模型的控制器 我见过的所有 MVVM 示例都非常简单并且只有 1 个视图 视图模型如何 应该如何与控制器对话 控制器了解模型和视图 视图模型是否应该将事件发送
  • 如何复制包含除标识列之外的每一列的行 (SQL Server 2005)

    My code SELECT INTO t FROM CTABLE WHERE CID cid get data put into a temp table ALTER TABLE t DROP COLUMN CID remove prim
  • Java Hadoop Mapper 如何发送多个值

    我的映射器需要发送以下元组
  • 为什么 C++ 允许将整数赋给字符串?

    我今天在程序中遇到了一个有趣的情况 我无意中将一个无符号整数分配给了 std string VisualStudio C 编译器没有给出任何警告或错误 但我在运行项目时碰巧注意到了这个错误 它给了我的字符串垃圾字符 代码如下 std str
  • 使用 Python 将包含双引号的参数传递给子进程

    我正在寻找一种方法来将包含双引号的参数传递给 python 的子进程模块 而不需要转义双引号 当参数周围有引号时 我见过这个问题被问过几次 但答案通常是删除引号 我遇到的问题是引号是参数的一部分 必须传递给脚本 而不能在每个引号前添加反斜杠
  • 多维数组:运算符重载

    我有一个带有多维数组的类 可以使用此类创建一维 二维 n 维数组 如果数组有 n 维 我想使用 noperator 获取一个对象 例子 A a 2 2 2 2 a 0 1 1 0 5 但数组不是指针向量 它会导致其他向量等 所以我希望运算符
  • 通过注入 JavaScript 强制 React 触发事件

    我正在尝试做什么 我目前正在为 Web Whatsapp 编写一个小聊天机器人 我决定使用 chrome 扩展 因为 js 注入很容易 有一个语音消息按钮 当您开始输入内容时 该按钮会切换为发送文本的按钮 React 删除语音消息元素并呈现
  • 在 Laravel 4 中上传多个文件

    这是我用于上传多个文件的控制器代码 我正在从 Google Chrome 上的 postman rest API 客户端传递键和值 我正在从邮递员添加多个文件 但只有 1 个文件正在上传 public function post files
  • 在 Android Webview 中,我可以修改网页的 DOM 吗?

    假设我通过 webview 加载第 3 方 URL public void onCreate Bundle savedInstanceState super onCreate savedInstanceState setContentVie