java - 将字符串从 Java 传递到 Javascript 函数

标签 java javascript android jquery cordova

我是 Phone gap 和 Java 脚本的新手。如果有人提供样本或建议,那将大有帮助。

异常:我得到以下异常:未捕获类型错误:对象 [对象对象] 没有方法 'getName'

public class ViewerActivity extends DroidGap {
    private CordovaActivity mGap;
    private WebView mWebView;

    WebView mWebView;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);


       mWebView=new WebView(this);
       mWebView.getSettings().setJavaScriptEnabled(true);
       mWebView.addJavascriptInterface(new JavaScriptInterfaceClass (), "jsinterface");
       mWebView.loadUrl("file:///android_asset/www/sample.html");
    }


}

Java 脚本接口(interface)类:

public class JavaScriptInterfaceClass {
    public WebView mAppView;
    public DroidGap mGap;


public JavaScriptInterfaceClass(DroidGap gap, WebView view) {
    this.mAppView = view;
    this.mGap = gap;

}

public String getName() {


  return "android";
  }
}

HTML:

<!DOCTYPE html>
<html>
<head>
    <link rel="stylesheet" href="css-js/jquery.mobile-1.0a3.min.css" />
    <script src="css-js/jquery-1.5.min.js"></script>
    <script src="css-js/jquery.mobile-1.0a3.min.js"></script>
</head>
<body>

<script>
    function myFunction()
    {
        var name = jsinterface.getName();
        alert("Hello! I am an alert box!"+name);
    }
    </script>
 <input type="button" onclick="myFunction()" value="Show alert box" />
</body>
</html>

最佳答案

类名错误。正确的应该是

mWebView.addJavascriptInterface(new JavaScriptInterfaceClass(), "jsinterface");
                                                       ^

关于java - 将字符串从 Java 传递到 Javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21449147/

相关文章:

java - 使用 Apache POI 将多个图像插入 Excel 时,第一个图像被删除

带有最终局部变量的 Java 编译器优化

java - 在 GUI 构建器中找到的对齐准则/对齐算法

javascript - ES6 setter 函数无法识别

javascript - 防止过渡变换比例上的边界模糊

javascript - 使用 RxJS 一次限制请求数

android - Android 上的 QML - C++ 适用于业务逻辑吗?

Java JPA ORM 映射

android - 在 Chrome 和其他浏览器中获取上次访问的 URL

android - 在 Firebase 中读写数据