Android:MobileFirst 将数据从 Native 发送到跨页面
Posted
技术标签:
【中文标题】Android:MobileFirst 将数据从 Native 发送到跨页面【英文标题】:Android: MobileFirst sending data from Native to cross page 【发布时间】:2015-07-10 02:37:43 【问题描述】:我的任务如下:使用 IBM MobileFirst 创建一个 Hybrid 应用程序并实现一个 JS 计算器。显示从本地 Java API 检索到的日期到网页。
我的尝试:
-
我按照文档here 实现了整个Native 代码的onCreate 方法
我发现this 回答“第一个”说明我应该在 onInitWebFrameworkComplete 上使用它,
提供的解决方案无效 我正在使用 MobileFirst 版本 7 完整的示例代码是provided建议:我应该在本机代码中创建整个操作栏,然后将其合并到交叉 ui 中,可以吗?我只需要发送一小串日期
【问题讨论】:
【参考方案1】:我不清楚你的尝试,所以这里快速演示如何单击 html 中的按钮并触发 Send Action API 以获取 Java 中的当前日期并将其返回给 javascript,然后显示。
index.html
<button onclick="getDateFromJava();">show current date from Java</button>
main.js
function wlCommonInit()
WL.App.addActionReceiver ("returneDdateFromJava", returnedDateFromJava);
function getDateFromJava()
WL.App.sendActionToNative("retrieveDate");
function returnedDateFromJava(received)
if (received.action === "returnedDateFromJava")
alert (JSON.stringify(received));
主 Java 类文件
-
查找
onInitWebFrameworkComplete
在else
之后添加ActionReceiver
:
import com.worklight.androidgap.api.WLActionReceiver;
...
...
public void onInitWebFrameworkComplete(WLInitWebFrameworkResult result)
if (result.getStatusCode() == WLInitWebFrameworkResult.SUCCESS)
super.loadUrl(WL.getInstance().getMainHtmlFilePath());
else
handleWebFrameworkInitFailure(result);
ActionReceiver ActionReceiver = new ActionReceiver();
WL.getInstance().addActionReceiver(ActionReceiver);
ActionReceiver 类
package com.getDateApp;
import java.util.Date;
import org.json.JSONException;
import org.json.JSONObject;
import com.worklight.androidgap.api.WL;
import com.worklight.androidgap.api.WLActionReceiver;
public class ActionReceiver implements WLActionReceiver
public void onActionReceived(String action, JSONObject data)
if (action.equals("retrieveDate"))
Date date = new Date();
JSONObject returnedDate = new JSONObject();
try
returnedDate.put("dateFromJava", date);
catch (JSONException e)
e.printStackTrace();
WL.getInstance().sendActionToJS("returnedDateFromJava", returnedDate);
【讨论】:
以上是关于Android:MobileFirst 将数据从 Native 发送到跨页面的主要内容,如果未能解决你的问题,请参考以下文章
android 模拟器在 mobilefirst 上的 shouldStartProvisioning 错误
要在 Android 上显示的自定义广播接收器块通知 - IBM mobilefirst
从 WL6.3 迁移后,Android 中的 IBM MobileFirst 7.1 服务器连接失败