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 运行后台进程?

控制台中没有 Worklight 6.2 运行时

安装分析后,我的 Worklight 6.2 控制台上没有运行时

IBM Worklight 6.0 - 添加 Worklight 文件条目选项时遇到问题

在执行构建和部署 Worklight 5.x.x 应用程序时运行 Ant 文件