SDK do iOS - Opções avançadas

Documento

Opções avançadas

Gerir manualmente as sessões

Por predefinição, se a aplicação for executada em segundo plano durante 60 segundos ou mais antes de regressar ao primeiro plano, o SDK registará uma nova sessão. Para alterar esse valor de tempo limite, use o método setSessionTimeout e adicione-o ao Config.

setSessionTimeout Método
Descrição Altera o valor de timeout da sessão.
Assinatura (void)setSessionTimeout:(int)timeout
Exemplo de utilização
SwiftObjective-C
func getConfig() -> SingularConfig? {       
  // Singular Config Options     


  guard let config = SingularConfig(apiKey: Constants.APIKEY, andSecret:
    Constants.SECRET) else {         
      return nil     
      }     
  //...
  Singular.setSessionTimeout(120)      
  //...
  return config
}

Usando a interface JavaScript

O Singular fornece uma interface JavaScript que pode ser usada para chamar o Singular em seu aplicativo.

Por exemplo, se você configurar a interface JavaScript, poderá enviar eventos para o Singular a partir do código JavaScript da seguinte forma:

JavaScript
Singular.event('event');
Singular.event('test', JSON.stringify({"a1":"bar", "a2":"boo", "a3":"baz"}));

Métodos suportados em JavaScript

A interface suporta os seguintes métodos do SDK:

  • setCustomUserID
  • unsetCustomUserID
  • evento
  • receita

Ativar a interface JavaScript

Nota: A partir do iOS 8.0+, a Apple recomenda a utilização do WKWebView para adicionar conteúdo Web à sua aplicação. Não utilize o UIWebView ou o WebView. Consulte a documentação WKWebView da Apple para obter mais informações.

Para ativar a interface JavaScript ao utilizar o WKWebView, é necessário adicionar algum código ao método webView do protocolo WKNavigationDelegate (este protocolo ajuda-o a implementar comportamentos personalizados desencadeados quando uma vista Web trata de um pedido de navegação).

Swift
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   


    }
}