相关疑难解决方法(0)

拦截并覆盖来自WebView的HTTP请求

我的应用程序中有一个WebView,其中一些站点被打开(总是相同的,它是我自己的页面).该站点有一些JS代码,可以从远程主机加载一些图像.

我想截取对这些图像的请求(通过URL模式)并返回我自己的内容(即另一个图像),或者根据内部应用程序逻辑保持请求不变.

有可能吗?

编辑:目前的问题状态......

WebView有能力设置WebViewClient(如Axarydax所述).WebViewClient有两个有用的方法

  • shouldOverrideUrlLoading
  • onLoadResource

shouldOverrideUrlLoading能够拦截任何URL加载,如果加载是由页面交互触发的(即单击页面上的链接,WebView.loadURL("")不会触发此方法).它还可以通过返回false来取消URL加载.这种方法不可用,导致'它无法拦截页面资源的加载(和图像,我需要拦截的是这样的页面资源).

onLoadResource每次加载页面资源(和图像!thx到jessyjones)时都会触发,但是没有办法取消它.这使得这种方法也不适合我的任务.

android android-webview webviewclient

60
推荐指数
4
解决办法
10万
查看次数

Java到JavaScript使用GWT编译器

我编写了一些Java代码,我想将其转换为JavaScript.我想知道是否可以使用GWT编译器将提到的Java代码编译成JavaScript代码,保留方法,变量和参数的所有名称.我尝试使用-draftCompile关闭代码优化来编译它,但是方法名称被破坏了.如果GWT编译器不能这样做,可以使用其他一些工具吗?

更新

Java代码只依赖于GWT模拟类,因此GWT编译器肯定能够处理它.

更新2

这个Java方法:

public String method()
Run Code Online (Sandbox Code Playgroud)

翻译成这个JavaScript函数:

function com_client_T_$method__Lcom_client_T_2Ljava_lang_String_2()
Run Code Online (Sandbox Code Playgroud)

使用编译器选项:

-style DETAILED
-optimize 0
-draftCompile
Run Code Online (Sandbox Code Playgroud)

所以名称不能保留.但有没有办法控制它们的变化?

澄清

比如说,您有一个用Java编写的排序算法(或其他一些简单的Maths实用程序).方法sort()采用整数数组.并在排序的数组中返回这些整数.现在说,我有Java和JavaScript应用程序.我想用Java编写这个方法一次,通过GWT编译器运行它,并保持方法名称相同,或者以可预测的方式更改它,这样我就可以检测它并知道如何将其更改回排序( ).然后我可以将该代码放在我的JavaScript应用程序中并使用它.如果Java版本发生变化,我也可以自动重新生成它.我在技术上有一个非常好的理由,我在高层次上理解GWT的概念,我只是在寻找这一点的答案.

结论

主要问题的答案是否定的.虽然方法名称可以在某种程度上保留,但它的主体不可用.其中的方法调用分散在整个生成的文件中,因此,它们不能在JavaScript库中使用,这是本主题的重点.

javascript java gwt

14
推荐指数
3
解决办法
2万
查看次数

将TypeScript转换为Java

我最近一直在编写TypeScript,用于在浏览器中运行.我发现我想要做的是从Java应用程序中运行相同的代码.我有一个复杂的逻辑,我想编写一次,并在浏览器中的JavaScript环境中以及Java桌面环境中使用.现在我知道我可以在java中托管javascript,但我想知道是否有将TypeScript转换为纯Java代码的方法?

java typescript

11
推荐指数
3
解决办法
8172
查看次数

如何将现有的javascript转换为java以与GWT一起使用?

有没有工具将javascript转换为java,所以我可以使用GWT处理项目?

更新

对于那些不知道的人,GWT(Google Web Toolkit)是一个编写Java并获取Javascript的工具包,所以我的问题.

javascript java gwt

4
推荐指数
1
解决办法
7809
查看次数