在触发器中获取顶点页眉
Get apex page header in trigger
我正在尝试让用户代理通过触发器调用 apex class 中的 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();
}
当触发器运行时,它 returns 这个错误:
System.NullPointerException: Attempt to de-reference a null object: Class.MyClass.isMobileDevice: line 129, column 1
第129行是这一行:
String userAgent = ApexPages.currentPage().getHeaders().get('User-Agent');
是否有解决方法可以从 apex 触发器中的控制器获取用户代理,或者根本不可能?
在此先感谢您提供的任何帮助。
我终于做到了。
我在对象上使用了一个自定义字段,并根据用户代理在创建记录时完成它的值。然后在触发器中我只需要检查那个字段而不是 userAgent 了。
希望对您有所帮助。
我正在尝试让用户代理通过触发器调用 apex class 中的 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();
}
当触发器运行时,它 returns 这个错误:
System.NullPointerException: Attempt to de-reference a null object: Class.MyClass.isMobileDevice: line 129, column 1
第129行是这一行:
String userAgent = ApexPages.currentPage().getHeaders().get('User-Agent');
是否有解决方法可以从 apex 触发器中的控制器获取用户代理,或者根本不可能?
在此先感谢您提供的任何帮助。
我终于做到了。
我在对象上使用了一个自定义字段,并根据用户代理在创建记录时完成它的值。然后在触发器中我只需要检查那个字段而不是 userAgent 了。
希望对您有所帮助。