在JS中实现SendActionToNative

时间:2016-07-11 08:00:44

标签: javascript java android ibm-mobilefirst

我已扩展CordovaActivity,并在原生代码中实施WLInitWebFrameworkListenerBluetoothAdapter.LeScanCallback

public class MainActivity extends CordovaActivity implements WLInitWebFrameworkListener, BluetoothAdapter.LeScanCallback{
  1. 在本课程中我实施了

    @Override
    public void onInitWebFrameworkComplete(WLInitWebFrameworkResult arg0) {
    // if a device is connected launch application
    if(mConnectedGATT.connect()){
        WL.getInstance().addActionReceiver(new ErosReceiver());
        super.loadUrl(WL.getInstance().getMainHtmlFilePath());
    
        }
    else{Log.i(TAG, "Could not connect");}
    }
    
  2. 我已将以下内容添加到函数

    中的main.js中
    WL.App.SendActionToNative ("ReqSlaveList", data);
    
  3. 我创建了另一个班级MyReceiver

    public class MyReceiver implements WLActionReceiver {
    
  4. 已实施

    public void onActionReceived(String action, JSONObject data) 
    
  5. 现在似乎永远不会调用OnActionReceived

1 个答案:

答案 0 :(得分:0)

我认为你不应该创建一个实现onInitWebFrameworkComplete的新类。您需要您的代码附加到已经执行此操作的现有应用程序主类(以及MobileFirst Platform所依赖的)。

您可以在MobileFirst Studio中的应用程序的 native 文件夹中找到此应用程序主类。那是您应该声明ActionReceiver的地方。见这里:https://mobilefirstplatform.ibmcloud.com/tutorials/en/foundation/6.3/adding-native-functionality/android-adding-native-ui-elements-hybrid-applications/#action-receiver