相关疑难解决方法(0)

Android在WebView中调用JavaScript函数

我试图将一些javascript函数调用在一个html页面中运行android webview.很简单,什么代码尝试下面的事情-从Android应用程序,调用一个javascript带有测试消息,它依次调用Java函数回,在Android应用程序,通过敬酒显示测试消息功能.

javascript功能如下:

function testEcho(message){
     window.JSInterface.doEchoTest(message);
}
Run Code Online (Sandbox Code Playgroud)

从WebView,我试着javascript通过以下方式调用,没有运气:

myWebView.loadUrl("javascript:testEcho(Hello World!)");
mWebView.loadUrl("javascript:(function () { " + "testEcho(Hello World!);" + "})()");
Run Code Online (Sandbox Code Playgroud)

我确实启用javascriptWebView

myWebView.getSettings().setJavaScriptEnabled(true);
// register class containing methods to be exposed to JavaScript
myWebView.addJavascriptInterface(myJSInterface, "JSInterface"); 
Run Code Online (Sandbox Code Playgroud)

并且继承了Java班级

public class JSInterface{

private WebView mAppView;
public JSInterface  (WebView appView) {
        this.mAppView = appView;
    }

    public void doEchoTest(String echo){
        Toast toast = Toast.makeText(mAppView.getContext(), echo, Toast.LENGTH_SHORT);
        toast.show();
    }
}
Run Code Online (Sandbox Code Playgroud)

我花了很多时间在谷歌上搜索我可能做错了什么.我发现的所有例子都使用这种方法.有没有人在这里看错了? …

javascript android webview

234
推荐指数
7
解决办法
26万
查看次数

JavaScript警报在Android WebView中无效

在我的应用程序中,我正在使用WebView,并且我正在使用JavaScript alert( )方法但它不起作用,没有弹出窗口出现.

在我的清单文件中,我添加了

<uses-permission android:name="android.permission.INTERNET"></uses-permission>
Run Code Online (Sandbox Code Playgroud)

在我添加的活动文件中

mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl("file:///android_asset/demo.html");
Run Code Online (Sandbox Code Playgroud)

在我添加的布局xml文件中

<WebView 
    android:id="@+id/webview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
/>
Run Code Online (Sandbox Code Playgroud)

任何线索如何启用全JavaScriptWebView


更新

谢谢标记文件中
alert()方法html现在正在工作:).

现在有两个问题WebView:
1:我<textarea>在我正在加载的html文件中使用a WebView,并尝试用其中的印地语语言编写,但当我尝试编写印地文文本时,它显示为符号(矩形符号,如[]).

当我在桌面上的firefox浏览器中做同样的事情它工作正常.任何线索如何给多语言支持textareaWebView

2:当我点击提交并尝试alert()在另一个java脚本中打开方法中的文本值时,它不起作用,是否意味着即使使用WebChromeClient 其仅适用于当前加载的html页面而未javascripts从该页面调用?

javascript android

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

Android如何将值写入HTML5 localstorage?

我有一个webview android应用程序,它打开一个包含一些HTML5/JavaScript代码的网页.我想将一些值从我的应用程序的android端传递到浏览器端.所以我想从Android写入HTML5 localstorage,然后网页的Javascript部分读取localstorage中的值.

Android webview如何写入HTML5 localstorage?

或者是否有一种方式Android可以将一些值传递给它加载的页面的javascript?(无需重新加载整个页面)说在HTML5 localstorage上写一些内容然后javascript代码从HTML5 localstorage中读取该内容

它与如何将json格式的数据从webview传递到html页面不同.我需要一种通过android写入HTML5 localstorage的方法

javascript html5 android local-storage android-webview

14
推荐指数
1
解决办法
5182
查看次数

从 Android 调用 JavaScript

我无法从 Android 内部调用基本的 JavaScript 函数。当我从本教程克隆存储库,然后将其剥离时,我能够使代码正常运行。但是,在尝试创建自己的新项目时,我没有成功。

我参考了以下帖子,似乎也在做同样的事情,但无济于事。这些方法之间没有明显的不同,所以我觉得这些文件之外可能存在我遗漏的依赖项?

Android 在 WebView 中调用 JavaScript 函数

在 Webview 中运行 javascript 代码

我想知道我是否在某处遗漏了一些微妙的东西。

基本上,我只是想通过调用在其自己的文件中定义的 JavaScript 函数来获取任何输出到控制台。项目结构如下:

main
- assets
  - index.html
  - sketch.js

- java
  - com.mypackage
    - MainActivity.java
Run Code Online (Sandbox Code Playgroud)

我有一个sketch.js包含以下功能的文件

function hello() {
    console.log("hello world");
}
Run Code Online (Sandbox Code Playgroud)

和一个index.html包含以下代码的文件

<!DOCTYPE html>
<html>
  <head>
    <script src="sketch.js" type="text/javascript"></script>

  </head>
  <body>
  <canvas></canvas>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

然后从我的活动类中,我有以下 Java 代码

webView = (WebView) findViewById(R.id.webView);
webView.setWebChromeClient(new WebChromeClient());
webView.getSettings().setJavaScriptEnabled(true);

webView.loadUrl("file:///android_asset/index.html");

webView.evaluateJavascript("javascript:hello();", null);
webView.evaluateJavascript("console.log('Hello world 2');", null);
Run Code Online (Sandbox Code Playgroud)

在 Android Studio …

javascript android android-webview

5
推荐指数
1
解决办法
3621
查看次数