【问题标题】:can we call an android activity from Phonegap project?我们可以从 Phonegap 项目中调用一个 android 活动吗?
【发布时间】:2013-10-30 19:30:35
【问题描述】:

我正在开发一个安卓应用程序。

我已经使用 HTML5 和 javascript 为 android 创建了一些编码。并在 Native JAva 中创建了一个签名捕获应用程序

我想在 HTML5 应用程序中包含原生签名捕获编码。因为 HTML5 中的签名捕获不适用于触控设备。

是否可以从 HTML5 phonegap android 应用程序调用原生 android 活动????

【问题讨论】:

    标签: javascript android cordova html5-canvas


    【解决方案1】:

    是的,有可能。

    为了做同样的事情,你需要将cordova lib添加到你的android项目中,此外通过扩展Plugin类在android中创建一个插件。

    名为execute() 的覆盖方法在那里,您可以从您的javascript 中调用。

    请记住,您需要将包含执行文件夹的类的路径定义为config.xml

    请访问下面的完整指南。

    Android Plugin

    【讨论】:

      【解决方案2】:

      在不使用任何插件的情况下调用任何 Java Native 代码,如下所示。

      按照以下步骤操作。

      1) 将以下代码替换为您现有的 DroidGap Activity。

          @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          super.init(); // Calling this is necessary to make this work
          appView.addJavascriptInterface(this, "MainActivity");
      
          /* "this" points the to the object of the current activity. "MainActivity" is used to refer "this" object in JavaScript as in Step 3. */
      
          super.loadUrl("file:///android_asset/www/index.html");
      }
      

      2 在当前(this)活动中添加自定义函数如下。

          public void customFunctionCalled() {
          Log.e("Custom Function Called", "Custom Function Called");
      }
      

      3 现在从您的 HTML/JavaScript 代码中调用此函数,如下所示。

      <script type="text/javascript">
      function callNewActivity() {
          window.MainActivity.customFunctionCalled();
      }
      

      【讨论】:

      • 我用了这么多次,效果很好,一定是你出错了
      • 您是否使用了 java 代码,因为它确保您的代码中有以下三行并且顺序相同 super.init(); // 调用 this 是必要的 appView.addJavascriptInterface(this, "MainActivity"); /* "this" 指向当前活动的对象。 "MainActivity" 用于在 JavaScript 中引用 "this" 对象,如步骤 3。 */ super.loadUrl("file:///android_asset/www/index.html");
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-29
      • 1970-01-01
      相关资源
      最近更新 更多