Trigger.io native模块 - 此平台不支持的方法

时间:2014-02-17 17:05:41

标签: trigger.io

我开发了一个自定义本机模块,以便在我的应用程序中保持屏幕清醒。

使用forgeInspector测试模块后,通过trigger.io工具包将其添加到我的应用程序中,此错误显示在控制台日志中:

[DEBUG] Returned: {"content":{"message":"Method not supported on this platform","type":"UNAVAILABLE","subtype":null},"callid":"CE53E970-807C-4179-8F02-BCAF4950A0AB","status":"error"}

使用JavaScript,我通过以下方式调用模块:

forge.stayawake.showAlert('test alert box',function(){alert('success');},function(e){ alert(e); });

我的module.js是:

forge.stayawake = {
    showAlert: function (text, success, error) {
        forge.internal.call('stayawake.showAlert', {text: text}, success, error);
    }
};

io.trigger.forge.android.modules.stayawake读取

package io.trigger.forge.android.modules.stayawake;

import io.trigger.forge.android.core.ForgeApp;
import io.trigger.forge.android.core.ForgeParam;
import io.trigger.forge.android.core.ForgeTask;
import android.app.AlertDialog;
import android.content.DialogInterface;

public class API {
    public static void showAlert(final ForgeTask task, @ForgeParam("text") final String text) {
        if (text.length() == 0) {
            // Error if there is no text to show
            task.error("No text entered");
            return;
        }
        task.performUI(new Runnable() {
            public void run() {
                AlertDialog.Builder builder = new AlertDialog.Builder(ForgeApp.getActivity());
                builder.setMessage(text).setCancelable(false).setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        task.success();
                    }
                });
                AlertDialog alert = builder.create();
                alert.show();
            }
        });
    }
}

作为一个控制测试,为了确保模块实际上正确加载,我尝试将“stayawake.set”重命名为“foo.test”,并得到完全相同的消息。

我还将所有内容还原为初始下载的检查员。如果我在我的主应用程序中包含它并调用默认的“showAlert”,我仍然会收到错误Method not supported on this platform。再次,使用检查员进行测试时一切正常。

我已经按照trigger.io上的所有说明进行操作,但仍然没有。

我只是没有正确或方式地调用我的模块吗?

1 个答案:

答案 0 :(得分:2)

在同样的情况下收到同样的错误后,我意识到我错过了该模块的Android构建步骤:

https://trigger.io/docs/current/api/native_modules/the_basics.html

  

构建/打包您的模块

     

Android

     

构建和导出模块   要包含在实际的Forge应用中:

     
      
  • 右键单击src文件夹,然后选择导出...

  •   
  • 使用向导将文件夹的内容导出为JAR

  •   
  • 您必须在JAR中包含生成的类文件和资源(不需要Java源代码)

  •   
  • 将该jar保存为模块文件夹中的android/module.jar。 (module_name/module/android/module.jar

  •   

以下是我的设置的屏幕截图:

Settings

然后我就可以上传模块并将其成功包含在我的项目中,而不会出现上述错误。