强制在移动设备上显示桌面

时间:2015-11-13 15:42:16

标签: javascript iphone mobile wavemaker

我正在使用WaveMaker 6.7开发一款适用于桌面和iPhone等移动设备的应用,而无需为移动设备创建特殊代码。我发现在这个版本的WaveMaker中,移动显示有很多问题,如:

  • 滚动效果不佳
  • 即使使用px中的宽度定义窗口小部件,窗体字段也会在屏幕宽度处被截止。
  • 网格功能不全(缺少背景颜色,无法按列标题排序。

我花了很多时间尝试用css纠正这个问题,并发现迫使桌面版本覆盖自动检测手机的工作非常完美。今天的移动浏览器功能齐全,并不需要任何特殊的小部件。因此,通过传递以下parm,我能够覆盖移动设备的检测并强制iPhone上的桌面版本:

wmmobile=desktop

http://xx.xx.xx.xx/WMappName/?wmmobile=desktop

这完全在我的iPhone上显示了我的应用程序,它与我正在寻找的桌面版本完全相同。

我的问题是我是否可以通过编程方式获取桌面版本,而无需通过wmmobile=desktop parm?这是我到目前为止所尝试的:

dojo.declare("Main", wm.Page, {
  if (wm.isMobile) {
    alert('Device Detected: ' + wm.device);
    wm.device='desktop';
  }
}

部分,但我认为这个过程发生得太晚了。因为当我在没有wmmobile parm的情况下使用以下内容访问我的应用时,应用程序会出现wm.device=phone而不是desktop

http://xx.xx.xx.xx/WMappName/

因此,我希望能够使用上述网址访问该应用并强制desktop并覆盖phone

任何人都知道如何绕过这个问题而不必通过wmmobile=desktop parm ???

2 个答案:

答案 0 :(得分:0)

覆盖设置wm.isMobile标记和wm.device的行为的正确位置在<Project Name>/webapps/boot.js脚本中。您可以在项目中对此进行修改,以便以您希望的方式以编程方式设置这些项目。

答案 1 :(得分:0)

当我读取文件boot.js(rev 6.5.3)时,你应该添加这一行 wm.device =“desktop”;

在wm.isMobile和wm.device初始化之后的第45行

这将覆盖刚刚制作的所有平板电脑或移动设置。