사용자 장치 (모바일 여부)에 따라 필드를 업데이트하기 위해 트리거를 통해 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 : Null 개체 참조 해제 시도 : Class.MyClass.isMobileDevice : 129 행, 1 열
129 번째 줄은 다음과 같습니다.
String userAgent = ApexPages.currentPage().getHeaders().get('User-Agent');
apex 트리거의 컨트롤러에서 사용자 에이전트를 가져 오는 해결 방법이 있습니까? 아니면 불가능합니까?
제공 할 수있는 도움에 미리 감사드립니다.
나는 마침내 그것을 할 수 있었다.
개체에 사용자 지정 필드를 사용하고 사용자 에이전트에 따라 레코드 생성시 해당 값을 완성했습니다. 그런 다음 트리거에서 더 이상 userAgent가 아닌 해당 필드 만 확인하면됩니다.
이것이 도움이되기를 바랍니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다