* tracker: rm env var tracker: fix some ios react native issues, add sessionid method * change(react-native): android native method to get sessionId * change(react-native): android version jump * change(react-native): android use promise * tracker: clearing logs --------- Co-authored-by: Shekar Siri <sshekarsiri@gmail.com>
83 lines
3.3 KiB
Swift
83 lines
3.3 KiB
Swift
import Openreplay
|
|
|
|
@objc(ORTrackerConnector)
|
|
public class ORTrackerConnector: NSObject {
|
|
@objc public static func moduleName() -> String {
|
|
return "ORTrackerConnector"
|
|
}
|
|
|
|
@objc public static func requiresMainQueueSetup() -> Bool {
|
|
return true
|
|
}
|
|
|
|
@objc(start:optionsDict:projectUrl:)
|
|
open func start(_ projectKey: String, optionsDict: NSDictionary, projectUrl: String?) {
|
|
let options = OROptions(
|
|
crashes: optionsDict["crashes"] as? Bool ?? true,
|
|
analytics: optionsDict["analytics"] as? Bool ?? true,
|
|
performances: optionsDict["performances"] as? Bool ?? true,
|
|
logs: optionsDict["logs"] as? Bool ?? true,
|
|
screen: optionsDict["screen"] as? Bool ?? true,
|
|
screenshotBatchSize: .normal,
|
|
wifiOnly: optionsDict["wifiOnly"] as? Bool ?? true,
|
|
debugLogs: optionsDict["debugLogs"] as? Bool ?? false,
|
|
debugImages: false
|
|
)
|
|
Openreplay.shared.serverURL = projectUrl ?? "https://api.openreplay.com/ingest"
|
|
Openreplay.shared.start(projectKey: projectKey, options: options)
|
|
print("Starting for \(options) \(projectKey) \(projectUrl ?? "no url")")
|
|
}
|
|
|
|
@objc open func stop() {
|
|
Openreplay.shared.stop()
|
|
}
|
|
|
|
@objc(startSession:optionsDict:projectUrl:)
|
|
open func startSession(_ projectKey: String, optionsDict: NSDictionary, projectUrl: String?) {
|
|
let options = OROptions(
|
|
crashes: optionsDict["crashes"] as? Bool ?? true,
|
|
analytics: optionsDict["analytics"] as? Bool ?? true,
|
|
performances: optionsDict["performances"] as? Bool ?? true,
|
|
logs: optionsDict["logs"] as? Bool ?? true,
|
|
screen: optionsDict["screen"] as? Bool ?? true,
|
|
wifiOnly: false,
|
|
debugLogs: optionsDict["debugLogs"] as? Bool ?? false,
|
|
debugImages: false
|
|
)
|
|
Openreplay.shared.serverURL = projectUrl ?? "https://api.openreplay.com/ingest"
|
|
Openreplay.shared.startSession(projectKey: projectKey, options: options)
|
|
print("Starting for \(options) \(projectKey) \(projectUrl ?? "no url")")
|
|
}
|
|
|
|
@objc(setMetadata:value:)
|
|
open func setMetadata(_ key: String, value: String) {
|
|
Openreplay.shared.setMetadata(key: key, value: value)
|
|
}
|
|
|
|
@objc(event:object:)
|
|
open func event(_ name: String, object: String?) {
|
|
Openreplay.shared.eventStr(name: name, payload: object)
|
|
}
|
|
|
|
|
|
@objc(setUserID:)
|
|
open func setUserID(_ userID: String) {
|
|
Openreplay.shared.setUserID(userID)
|
|
}
|
|
|
|
@objc(userAnonymousID:)
|
|
open func userAnonymousID(_ userID: String) {
|
|
Openreplay.shared.userAnonymousID(userID)
|
|
}
|
|
|
|
@objc(networkRequest:method:requestJSON:responseJSON:status:duration:)
|
|
open func networkRequest(_ url: String, method: String, requestJSON: String, responseJSON: String, status: NSNumber, duration: NSNumber) {
|
|
Openreplay.shared.networkRequest(url: url, method: method, requestJSON: requestJSON, responseJSON: responseJSON, status: Int(truncating: status), duration: UInt64(truncating: duration))
|
|
}
|
|
|
|
@objc(getSessionID:rejecter:)
|
|
open func getSessionID(_ resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock) {
|
|
let sessionID = Openreplay.shared.getSessionID()
|
|
resolve(sessionID)
|
|
}
|
|
}
|