IBM Worklight - 实现自定义后退/前进按钮
Posted
技术标签:
【中文标题】IBM Worklight - 实现自定义后退/前进按钮【英文标题】:IBM Worklight - implemeting custom back/forward buttons 【发布时间】:2013-11-30 18:27:51 【问题描述】:在我的应用程序中,我正在为 iO 和 android 环境创建一个 WL.TabBar
对象,例如导航菜单。为了模拟 jquery 的后退按钮,我使用了一个像这样的简单函数
function back()
history.back();
return false;
function forward()
history.forward();
return false;
在 ios 模拟器中它可以工作,但在 Android 中没有。我使用的是 Android 2.2 虚拟设备。
编辑:
这是android/js/[AppName].js
文件上的代码,同样是iOs环境。
function wlEnvInit()
wlCommonInit();
// Environment initialization code goes here
navigation.init();
navigation.addItem("item1",back,"Back",);
navigation.addItem("item2",forward,"Forward",);
navigation.setVisible(true);
var navigation = WL.TabBar;
function back()
window.history.back();
return false;
function forward()
window.history.forward();
return false;
【问题讨论】:
看不懂WL.TabBar上下文中的这段代码?比如,屏幕底部的箭头式按钮?您可以尝试从以下示例中获取代码并对其进行调整以适合您的:构建多页应用程序 - ibm.com/developerworks/mobile/worklight/… 您在 LogCat 中看到任何错误吗? @IdanAdar 您评论中的示例是指具有多个.html
文件的多页应用程序。我使用带有data-role: page
的单个文件和每个页面的ID。我看到了 LogCat 但没有错误,当我按下选项卡的按钮时,它向我显示这条消息 Trying to fire onNativeReady onMessage(onNativeReady,null) onMessage(onPageFinished,file:///data/data/com.Discovergin_Ragusa/files/www/default/Discovergin_Ragusa.html)
@IdanAdar 我还在我的安卓手机(4.0.4)上安装了.apk
,它可以工作。好像是android api版本的问题。。
请为问题添加更完整的实现(WL.TabBar 代码)。
【参考方案1】:
这个问题似乎是 Android 2.x 独有的。您的代码在 Android 4.x 上运行良好。出于某种原因,windows.back()/windows.forward() 在 Android 2.x 上直接从标签栏单击处理程序中调用时无效。您可以通过使用短暂的超时来解决此问题:
function back()
setTimeout(function()
window.history.back();
, 100);
return false;
function forward()
setTimeout(function()
window.history.forward();
, 100);
return false;
【讨论】:
以上是关于IBM Worklight - 实现自定义后退/前进按钮的主要内容,如果未能解决你的问题,请参考以下文章
jQuery (IBM Worklight) 页面导航和后退按钮
IBM Worklight 5.0.6 - 在推送通知错误时播放自定义声音
IBM Worklight 5.0.5 - 在推送通知上播放自定义声音