Worklight 运行时外观 - getSkinName 无法正常工作
Posted
技术标签:
【中文标题】Worklight 运行时外观 - getSkinName 无法正常工作【英文标题】:Worklight Runtime Skins - getSkinName not working properly 【发布时间】:2014-05-23 09:38:36 【问题描述】:我正在通过引用链接“http://public.dhe.ibm.com/software/mobile-solutions/worklight/docs/v610/05_03_Supporting_multiple_form_factors_using_Worklight_skins.pdf”为 android 设备的 Worklight Runtime Skins 创建一个示例。我已经更改了 JS、CSS 和 html 以在手机/平板电脑上应用皮肤,并且通过 Worklight Preview 测试同样可以正常工作。
但是当我尝试在真实设备中运行相同的代码时,我没有得到预期的正确输出。原因是 skinLoader.js 中的“getSkinName()”功能没有返回有效结果。 我尝试使用以下代码来检测设备是移动设备还是平板电脑,但这两个函数都给出了无效的输出。
Detect Device using UserAgent: //总是返回'android.phone'皮肤。
function getSkinName()
var userAgent = navigator.userAgent;
var skinName = "default";
alert(userAgent);
//android tablet
if(userAgent.toLowerCase().indexOf("android") != -1 &&
userAgent.toLowerCase().indexOf("mobile") == -1)
skinName = "default";
alert("tablet!");
//android phone
else if(userAgent.toLowerCase().indexOf("android") != -1 &&
userAgent.toLowerCase().indexOf("mobile") != -1)
skinName = "android.phone";
alert("phone!");
return skinName;
使用设备宽度检测设备://无法正常工作
function getSkinName()
var skinName = "default";
var hres = screen.width || window.innerWidth || 320;
var ratio = window.devicePixelRatio || 1;
if (ratio == 0)
ratio = 1;
var virtWidth = hres / ratio;
if (virtWidth >= 640)
skinName = "android.tablet";
return skinName;
请分享有关纠正 getSkinName() 以使其正常运行的想法。
【问题讨论】:
请确认您没有遇到此问题:***.com/questions/22797125/… 以上这些你检查了吗? Worklight 团队对 Idan 提出的问题有任何回应吗? (我是那个团队的一员),是的,这个缺陷在最新的 iFix for Worklight 6.1.0.1 中得到了解决;你能确认这是你正在经历的吗?也就是在你第二次加载应用后,它按预期工作了吗? 【参考方案1】:您遇到的情况可能与本题中提到的缺陷有关:IBM Worklight - "getSkinName is not defined"
针对上述缺陷的修复程序已在 Worklight 6.1.0.1 的最新 iFix 版本中提供。 如果您是 IBM 客户或业务合作伙伴,则可以从 IBM Fix Central(或通过 PMR 支持请求)获取。
【讨论】:
以上是关于Worklight 运行时外观 - getSkinName 无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章
IBM Worklight 6.1 - 富页面编辑器在进行更改后不刷新
安装分析后,我的 Worklight 6.2 控制台上没有运行时