고급 옵션
수동으로 세션 관리하기
기본적으로 앱이 백그라운드에서 60초 이상 실행된 후 포그라운드로 돌아오면 SDK는 새 세션을 등록합니다. 이 시간 제한 값을 변경하려면 설정 세션 시간 제한 메서드를 사용하여 구성에 추가합니다.
설정 세션 타임아웃 메서드 | |
---|---|
설명 | 세션 타임아웃 값을 변경합니다. |
서명 | (void)setSessionTimeout:(int)timeout |
사용 예제 |
|
자바Script 인터페이스 사용
Singular는 앱에서 Singular를 호출하는 데 사용할 수 있는 자바Script 인터페이스를 제공합니다.
예를 들어, 자바Script 인터페이스를 설정한 경우 다음과 같이 자바Script 코드에서 Singular로 이벤트를 보낼 수 있습니다:
Singular.event('event');
Singular.event('test', JSON.stringify({"a1":"bar", "a2":"boo", "a3":"baz"}));
자바Script에서 지원되는 메서드
이 인터페이스는 다음 SDK 메서드를 지원합니다:
- setCustomUserID
- unsetCustomUserID
- event
- revenue
자바Script 인터페이스 활성화
참고: iOS 8.0 이상부터 Apple은 앱에 웹 콘텐츠를 추가할 때 WKWebView를 사용할 것을 권장합니다. UIWebView 또는 WebView를 사용하지 마십시오. 자세한 내용은 Apple의 WKWebView 설명서를 참조하십시오.
WKWebView를 사용할 때 JavaScript 인터페이스를 활성화하려면 WKNavigationDelegate 프로토콜의 webView 메서드에 코드를 추가해야 합니다(이 프로토콜은 웹 보기가 탐색 요청을 처리할 때 트리거되는 사용자 지정 동작을 구현하는 데 도움이 됩니다).
extension ViewController: WKNavigationDelegate {
func webView(_: WKWebView, decidePolicyFor: WKNavigationAction,
decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
// Singular handler
let js = "typeof(Singular)"
webView.evaluateJavaScript(js) { (result, error) -> Void in
if let resultString = result as? String {
if resultString.isEqual("undefined") {
do {
let contents = try String(contentsOfFile:
Bundle.main.path(forResource: "Singular", ofType: "js")!)
self.webView.evaluateJavaScript(contents, completionHandler: nil)
} catch { }
} else {
print(decidePolicyFor.request)
Singular.processJSRequestWK(self.webView, withURL:decidePolicyFor.request)
}
}
}
// rest of your code goes here
}
}