【问题标题】:Get apex page header in trigger在触发器中获取顶点页眉
【发布时间】:2015-01-23 09:53:56
【问题描述】:

我正在尝试让用户代理通过触发器调用 apex 类中的 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:尝试取消引用空对象:Class.MyClass.isMobileDevice:第 129 行,第 1 列

第 129 行是这一行:

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

是否有一种解决方法可以从 apex 触发器中的控制器获取用户代理,还是根本不可能?

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

【问题讨论】:

    标签: triggers salesforce apex


    【解决方案1】:

    我终于成功了。

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

    希望这能有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-31
      • 1970-01-01
      相关资源
      最近更新 更多