【发布时间】:2016-06-30 02:12:24
【问题描述】:
您好,我正在创建一个 MobileFirst 混合应用程序,需要在 index.html 页面加载时启动/调用 Activity 类 onCreate() 方法。
【问题讨论】:
标签: java android layout ibm-mobilefirst setcontentview
您好,我正在创建一个 MobileFirst 混合应用程序,需要在 index.html 页面加载时启动/调用 Activity 类 onCreate() 方法。
【问题讨论】:
标签: java android layout ibm-mobilefirst setcontentview
使用 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
您可以在 wlCommonInit 中直接调用,一旦 MobileFirst SDK 完全初始化,就会调用它。
【讨论】:
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>
【讨论】:
这就是我所做的,
继承了 CordovaActivity 类而不是 Activity 类并实现了 WLInitWebFrameworkListener。在 onInitWebFrameworkComplete 事件中添加:
super.loadUrl(WL.getInstance().getMainHtmlFilePath());
在 Oncreate() 方法下添加
WL.createInstance(this);
WL.getInstance().initializeWebFramework(getApplicationContext(), this);
现在我的 SendActionAPI 工作了
【讨论】: