【问题标题】:Calling android native APIs from javascript functions of embedded WebView从嵌入式 WebView 的 javascript 函数调用 android 原生 API
【发布时间】:2011-07-20 19:52:59
【问题描述】:

我是黑莓开发人员,没有任何 Android 编程经验。

我正在尝试创建一个具有 webview/嵌入式浏览器的 android 应用程序。我将在嵌入式浏览器中加载一些带有 javascripts 的网页。页面上会有一些按钮调用 javascript 函数。其中一些功能需要访问本机 API(例如 Camera API)。是否可以从 javascript 函数调用本机 api 或访问应用程序的本机代码?

现在这在使用 Javascript 扩展的黑莓平台上是可能的。我期待在Android中有类似的东西。

谢谢。

任何正在寻找答案的人,我都根据@dtanders 的答案找到了解决方案。 看一下这个: http://developer.android.com/guide/webapps/webview.html#BindingJavaScript

【问题讨论】:

  • 我对javascript知之甚少,所以我不能肯定地说。但我从来没有遇到过可以在 Android 上做到这一点的方法。您是否已经构建了要加载到 WebView 中的 Web 应用程序?
  • @Tim 是的,我们已经有了一个 web 应用程序。但我还没有使用 WebView 创建任何示例本机应用程序。我想先知道有没有可能。

标签: javascript android


【解决方案1】:

【讨论】:

  • 谢谢。这正是我想要的。
  • 在使用 addJavascriptInterface 方法时要非常小心。它允许 javascript 使用注入对象的公共字段。
【解决方案2】:

好吧,如果您特别想要 Camera API,可以这样做。从您的 JS 代码中,您可以调用一段 Java 代码,该代码将依次触发 Camera App、拍照、返回图像的 URL,您的 Java 代码可以将其转发给 JS 方法。

【讨论】:

  • 我找到了解决方案。但我仍然对可以为我完成所有相机功能的“一段 javacode”感兴趣。还是你也在谈论 addJavaScriptInterface?
【解决方案3】:

见:

http://developer.android.com/guide/webapps/index.html http://developer.android.com/guide/webapps/webview.html

【讨论】:

    【解决方案4】:

    这是我在黑暗中的完整镜头,但这些可能对您有一些有用的信息。

    Webview not responding to touch events

    Does Android support click events in its WebView?

    另外不要忘记 WebViews 默认禁用 javascript,您需要将其显式设置为 true 才能使其正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-20
      • 2017-10-15
      • 1970-01-01
      • 1970-01-01
      • 2012-05-10
      • 1970-01-01
      • 2013-06-06
      • 2011-05-18
      相关资源
      最近更新 更多