詳細オプション
セッションの手動管理
デフォルトでは、アプリがバックグラウンドで60秒以上実行されてからフォアグラウンドに戻ると、SDKは新しいセッションを登録します。このタイムアウト値を変更するには、setSessionTimeoutメソッドを使用し、それをConfigに追加します。
setSessionTimeoutメソッド | |
---|---|
説明 | セッションタイムアウト値を変更します。 |
シグネチャ | (void)setSessionTimeout:(int)timeout |
使用例 |
|
JavaScriptインターフェースの使用
SingularはJavaScriptインターフェイスを提供しており、それを使ってアプリでSingularを呼び出すことができます。
例えば、JavaScriptインターフェースを設定すると、以下のようにJavaScriptコードからSingularにイベントを送ることができます:
Singular.event('event');
Singular.event('test', JSON.stringify({"a1":"bar", "a2":"boo", "a3":"baz"}));
JavaScriptでサポートされているメソッド
このインターフェースは以下のSDKメソッドをサポートしています:
- setCustomUserID
- unsetCustomUserID
- イベント
- 収益
JavaScriptインターフェースを有効にする
注意:iOS 8.0+から、Appleはアプリにウェブコンテンツを追加するためにWKWebViewを使用することを推奨しています。UIWebViewや WebViewは使用しないでください。詳しくはAppleのWKWebViewのドキュメントを参照してください。
WKWebViewを使用しているときにJavaScriptインターフェイスを有効にするには、WKNavigationDelegateプロトコルのwebViewメソッドにコードを追加する必要があります(このプロトコルは、Webビューがナビゲーション要求を処理したときにトリガされるカスタムビヘイビアを実装するのに役立ちます)。
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
}
}