获取触发器中的顶点页眉

时间:2015-01-23 09:53:56

标签: triggers salesforce apex

我试图让用户代理通过触发器在顶点类中调用顶点页面标题,以根据用户设备(移动或不移动)更新字段。

以下是我使用的代码:

public static boolean isMobileDevice() {
    String userAgent = ApexPages.currentPage().getHeaders().get('User-Agent');
    if (userAgent == null) {
        return false;
    }
    Pattern p = Pattern.compile('Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|NetFront|Silk-Accelerated|(hpw|web)OS|Fennec|Minimo|Opera M(obi|ini)|Blazer|Dolfin|Dolphin|Skyfire|Zune');
    Matcher pm = p.matcher(userAgent);
    return pm.find();        
}

当触发器运行时,它会返回以下错误:

  

System.NullPointerException:尝试取消引用null对象:Class.MyClass.isMobileDevice:第129行,第1列

第129行是这一行:

String userAgent = ApexPages.currentPage().getHeaders().get('User-Agent');

是否有一种解决方法可以在顶点触发器中从控制器获取用户代理,还是只是不可能?

提前感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:0)

我终于成功了。

我在对象上使用了自定义字段,并根据用户代理完成了创建记录的值。然后在触发器中我只需要检查该字段而不再是userAgent。

希望这可以提供帮助。