首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Android WebView中注入JavaScript以替换已经存在的对象

在Android WebView中注入JavaScript以替换已经存在的对象
EN

Stack Overflow用户
提问于 2022-06-28 08:59:38
回答 1查看 163关注 0票数 0

我需要一些关于安卓的WebView的帮助。我试图创建一个应用程序,加载一个网页,我不能改变。该网页确实加载了许多javascript文件,我试图覆盖其中一个现有对象的行为。问题是,在其中一个脚本中,该对象将使用构造函数进行初始化,并被重置,如下所示:

代码语言:javascript
复制
obj.init();//invokes the method in my ObjInterface class which I inject
obj = new ObjectClass();
obj.init();//invokes the original ObjectClass method

通过这一行,我的接口不再被调用,obj按默认方式运行。我把这个旗子设置好了:

代码语言:javascript
复制
settings.setJavaScriptEnabled(true);
settings.setCacheMode(WebSettings.LOAD_NO_CACHE);
settings.setDomStorageEnabled(true);
settings.setJavaScriptCanOpenWindowsAutomatically(true);
settings.setAllowFileAccess(true);

我怎样才能做到这一点?问候

EN

回答 1

Stack Overflow用户

发布于 2022-06-28 09:29:40

我不能完全理解你的问题。您是否试图注入整个javascript类?

不知道你是否可以,但你有没有尝试注入转换字符串?就像这样:

代码语言:javascript
复制
inner class BaseWebViewClient : WebViewClient() {
      override fun onPageFinished(view: WebView, url: String) {
                super.onPageFinished(view, url)
                
                view.loadUrl("javascript: $yourCode")
    }
}

希望这能帮上忙

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72783557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档