繁体   English   中英

如何检测salesforce lightning应用程序是在移动浏览器还是台式机浏览器上运行?

[英]How to detect whether salesforce lightning app is running on a mobile browser or desktop browser?

我们有在手机和台式机上均可运行的salesforce lightning应用程序。 只需要为移动应用程序编写一些代码。 如何检测应用程序是在移动浏览器还是在桌面浏览器上运行? 我使用了以下代码,但无法正常工作:

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

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

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

桌面客户端的桌面电话手机,包括带浏览器的手机和平板电脑客户端的智能手机平板电脑(isTablet返回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

您还可以使用$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

您可以编写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;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM