2

我们有 Salesforce Lightning 应用程序,可在移动设备和桌面设备上运行。只需要为移动应用程序编写一些代码。如何检测应用程序是在移动浏览器还是桌面浏览器上运行?我使用了以下代码,但它不起作用:

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

3 回答 3

3

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

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

DESKTOP 用于桌面客户端 PHONE 用于手机,包括带有浏览器的手机和智能手机 TABLET 用于平板客户端(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

于 2017-04-25T16:10:33.947 回答
2

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

于 2016-06-17T16:38:08.510 回答
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;
    }
}
于 2016-06-17T07:55:26.950 回答