@pulseboard/react-native 0.3.2 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/PulseBoardSDK.podspec +19 -14
- package/android/src/main/java/com/pulseboard/PulseBoardDeviceModule.kt +28 -23
- package/android/src/main/java/com/pulseboard/PulseBoardNetworkModule.kt +34 -35
- package/android/src/main/java/com/pulseboard/PulseBoardPackage.kt +33 -12
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2 -2
- package/dist/index.mjs.map +1 -1
- package/ios/PulseBoardDevice.h +12 -0
- package/ios/PulseBoardDevice.mm +59 -6
- package/ios/PulseBoardNetwork.h +12 -0
- package/ios/PulseBoardNetwork.mm +88 -6
- package/package.json +15 -1
- package/ios/PulseBoardDevice.swift +0 -62
- package/ios/PulseBoardNetwork.swift +0 -84
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import Foundation
|
|
2
|
-
import Network
|
|
3
|
-
import CoreTelephony
|
|
4
|
-
import SystemConfiguration
|
|
5
|
-
|
|
6
|
-
@objc(PulseBoardNetwork)
|
|
7
|
-
class PulseBoardNetwork: NSObject {
|
|
8
|
-
|
|
9
|
-
@objc func getNetworkInfo(
|
|
10
|
-
_ resolve: @escaping (Any?) -> Void,
|
|
11
|
-
rejecter reject: @escaping (String?, String?, Error?) -> Void
|
|
12
|
-
) {
|
|
13
|
-
let monitor = NWPathMonitor()
|
|
14
|
-
let queue = DispatchQueue(label: "com.pulseboard.network")
|
|
15
|
-
|
|
16
|
-
monitor.pathUpdateHandler = { path in
|
|
17
|
-
monitor.cancel()
|
|
18
|
-
|
|
19
|
-
let isConnected = path.status == .satisfied
|
|
20
|
-
let isWifi = path.usesInterfaceType(.wifi)
|
|
21
|
-
let isCellular = path.usesInterfaceType(.cellular)
|
|
22
|
-
|
|
23
|
-
var carrier = "unknown"
|
|
24
|
-
if #available(iOS 16.0, *) {
|
|
25
|
-
carrier = "unknown"
|
|
26
|
-
} else {
|
|
27
|
-
let networkInfo = CTTelephonyNetworkInfo()
|
|
28
|
-
if let providers = networkInfo.serviceSubscriberCellularProviders {
|
|
29
|
-
carrier = providers.values.first?.carrierName ?? "unknown"
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
let result: [String: Any] = [
|
|
34
|
-
"type": isWifi ? "wifi" : isCellular ? "cellular" : isConnected ? "unknown" : "offline",
|
|
35
|
-
"isConnected": isConnected,
|
|
36
|
-
"isWifiEnabled": isWifi,
|
|
37
|
-
"carrier": carrier,
|
|
38
|
-
"ipAddress": self.getIPAddress() ?? "unknown",
|
|
39
|
-
]
|
|
40
|
-
|
|
41
|
-
resolve(result)
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
monitor.start(queue: queue)
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
private func getIPAddress() -> String? {
|
|
48
|
-
var address: String?
|
|
49
|
-
var ifaddr: UnsafeMutablePointer<ifaddrs>?
|
|
50
|
-
|
|
51
|
-
guard getifaddrs(&ifaddr) == 0 else { return nil }
|
|
52
|
-
defer { freeifaddrs(ifaddr) }
|
|
53
|
-
|
|
54
|
-
var ptr = ifaddr
|
|
55
|
-
while ptr != nil {
|
|
56
|
-
defer { ptr = ptr?.pointee.ifa_next }
|
|
57
|
-
let interface = ptr?.pointee
|
|
58
|
-
let addrFamily = interface?.ifa_addr.pointee.sa_family
|
|
59
|
-
|
|
60
|
-
if addrFamily == UInt8(AF_INET) {
|
|
61
|
-
let name = String(cString: (interface?.ifa_name)!)
|
|
62
|
-
if name == "en0" {
|
|
63
|
-
var hostname = [CChar](repeating: 0, count: Int(NI_MAXHOST))
|
|
64
|
-
getnameinfo(
|
|
65
|
-
interface?.ifa_addr,
|
|
66
|
-
socklen_t((interface?.ifa_addr.pointee.sa_len)!),
|
|
67
|
-
&hostname,
|
|
68
|
-
socklen_t(hostname.count),
|
|
69
|
-
nil,
|
|
70
|
-
socklen_t(0),
|
|
71
|
-
NI_NUMERICHOST
|
|
72
|
-
)
|
|
73
|
-
address = String(cString: hostname)
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
return address
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
@objc static func requiresMainQueueSetup() -> Bool {
|
|
82
|
-
return false
|
|
83
|
-
}
|
|
84
|
-
}
|