如何从MobileFirst混合应用程序中的html页面调用本机Activity类

时间:2016-06-30 02:12:25

标签: java android layout ibm-mobilefirst setcontentview

您好我正在创建一个MobileFirst Hybrid应用程序,需要在index.html页面加载时启动/调用Activity类onCreate()方法。

3 个答案:

答案 0 :(得分:0)

使用SendAction API:https://www.ibm.com/support/knowledgecenter/SSHS8R_7.1.0/com.ibm.worklight.dev.doc/devref/t_sending_actions_js_to_native.html

您可以在完全初始化MobileFirst SDK后调用的wlCommonInit中调用。

答案 1 :(得分:0)

Use this API

main.js


var param = {
              name: "hello"   //parameter pass to activity
            };
WL.NativePage.show("com.xyz.TestActivity", function(data){
        alert("data from activity "+data);
    }, param);

Make TestActivity in pkg com.xyz

TestActivity.java

package com.xyz;
import android.util.Log;
import android.annotation.TargetApi;
import android.app.Activity;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;

public class TestActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_test);

    String l_name = getIntent().getStringExtra("name");  // way to take   param from js file

    Intent in = new Intent();
    in.putExtra("test", "hello success");  // return data to js from activity
    setResult(RESULT_OK, in);
    finish();
}

}

  AndroidManifest.xml

 <activity android:name=".TestActivity"></activity> 

答案 2 :(得分:0)

所以这就是我所做的,

继承CordovaActivity类而不是Activity类并实现了WLInitWebFrameworkListener。在onInitWebFrameworkComplete事件中添加了:

super.loadUrl(WL.getInstance().getMainHtmlFilePath());

在Oncreate()方法下添加

WL.createInstance(this);
WL.getInstance().initializeWebFramework(getApplicationContext(), this);

现在我的SendActionAPI正常工作