如何检测salesforce lightning app是否在移动浏览器或桌面浏览器上运行?

时间:2016-06-16 10:40:05

标签: javascript css3 browser salesforce ie8-browser-mode

我们有salesforce闪电应用程序,可在手机和桌面上运行。需要为移动应用程序编写一些代码。如何检测应用程序是否在移动浏览器或桌面浏览器上运行? 我使用了以下代码,但它不起作用:

checkMobileBrowser: function(component){
    if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)){
        return true;        
    }else{
        return false;
    }
}

3 个答案:

答案 0 :(得分:3)

$ Browser全局值提供程序返回有关访问应用程序的浏览器的硬件和操作系统的信息。

根据运行浏览器的硬件类型返回FormFactor枚举值。

桌面客户端的DESKTOP 手机的电话,包括带浏览器和智能手机的手机 平板电脑客户端的平板电脑(forTablet返回true)

Ctrl

({
    checkBrowser: function(component) {
        var device = $A.get("$Browser.formFactor");
        alert("You are using a " + device);
    }
})
Component

<aura:component>
        {!$Browser.isTablet}
        {!$Browser.isPhone}
        {!$Browser.isAndroid}
        {!$Browser.formFactor}
    </aura:component>

通过这种方式,您可以确定

资源:http://www.janbask.com/salesforce-lightning

答案 1 :(得分:1)

您还可以使用$Browser全球价值提供商:

function checkMobileBrowser(){ 
   return $A.get("$Browser.formFactor") !== "DESKTOP"
}

这将确保您的检测与应用程序使用的内容相匹配,如果您的组件嵌入在S1或SFX中,并且所有内容都将打开相同的逻辑。

$Browser也可用于组件标记:

<aura:if "{!$Browser.formFactor !== 'DESKTOP'}">
   <component/>
</aura:if> 

您可能希望搜索$Browser的文档,因为它允许进行非常精细的硬件检测,并且可能还有其他特定用例。

https://resources.docs.salesforce.com/sfdc/pdf/lightning.pdf

答案 2 :(得分:0)

您可以编写JavaScript函数来验证浏览器的用户代理:

function detectmob(){ 
    if(navigator.userAgent.match(/Android/i)
            || navigator.userAgent.match(/webOS/i)
            || navigator.userAgent.match(/iPhone/i)
            || navigator.userAgent.match(/iPad/i)
            || navigator.userAgent.match(/iPod/i)
            || navigator.userAgent.match(/BlackBerry/i)
            || navigator.userAgent.match(/Windows Phone/i)){
        return true;
    }else{
        return false;
    }
}