network_info_plus_watchos 0.1.0 copy "network_info_plus_watchos: ^0.1.0" to clipboard
network_info_plus_watchos: ^0.1.0 copied to clipboard

watchOS implementation of the network_info_plus plugin, exposing Wi-Fi IPv4 and IPv6 addresses via getifaddrs and dart:ffi (SSID is unavailable on watchOS).

network_info_plus_watchos #

The watchOS implementation of network_info_plus.

Interface addresses are read with getifaddrs over dart:ffi.

Scaffolded by flutter-watchos plugin port from network_info_plus, then implemented and verified by hand.

Usage #

This is a federated plugin implementation. Apps that already depend on network_info_plus and target watchOS only need to add this package alongside it:

dependencies:
  network_info_plus: ^8.2.1
  network_info_plus_watchos: ^0.1.0

The plugin registers automatically via Flutter's federated registry — no explicit imports required from app code.

Behaviour on watchOS #

Getter watchOS
getWifiIP / getWifiIPv6 supported (active interface, preferring en0)
getWifiSubmask / getWifiBroadcast supported

Status #

Platform Implemented
Apple Watch (watchos) yes (addressing only)
Watch simulator (watchsimulator) yes

Verified end-to-end on the watch simulator (example/integration_test).

Example deviations #

The example is network_info_plus's own example app, and example/integration_test/network_info_plus_test.dart is its official test, both unchanged except for these watchOS deviations:

Where Change Why
example/lib/main.dart, both permission requests Platform.isIOS becomes FlutterWatchosPlatform.isIos Platform.isIOS is true on the watch, and permission_handler has no watchOS implementation, so the request failed with MissingPluginException at start
example/pubspec.yaml adds flutter_watchos: ^0.1.0 for FlutterWatchosPlatform
example/watchos/Runner/Info.plist sets FlutterWatchOSContentScale to 0.4 the app is designed for a phone and overflowed the watch screen (by 107 pixels on a 46 mm Simulator); the scale makes it lay out in a logical space 2.5 times the screen's size and draws it smaller, without touching the Dart code

example/integration_test/watchos_example_start_test.dart is a watchOS test beside the upstream one: it starts the example and checks that it shows its network info without an error. The watchOS widget test example/test/watchos_content_scale_test.dart lays the app out at its content scale on every watch screen size, with a global IPv6 address on screen, and fails on any overflow.

Not supported on watchOS #

These members of network_info_plus_platform_interface 3.1.0 throw or fail on watchOS. PORTING_REPORT.md lists every member under "Interface coverage".

Member On watchOS Why
getWifiName / getWifiBSSID always null watchOS has no CaptiveNetwork or NEHotspotNetwork
getWifiGatewayIP always null watchOS has no routing-table API

License #

The FlutterWatch Authors under a BSD-3-Clause license. See LICENSE for the full text.

0
likes
140
points
15
downloads

Documentation

API reference

Publisher

verified publisherflutterwatch.dev

Weekly Downloads

watchOS implementation of the network_info_plus plugin, exposing Wi-Fi IPv4 and IPv6 addresses via getifaddrs and dart:ffi (SSID is unavailable on watchOS).

Homepage
Repository (GitHub)
View/report issues

Topics

#watchos #ffi #network

License

BSD-3-Clause (license)

Dependencies

ffi, flutter, network_info_plus_platform_interface

More

Packages that depend on network_info_plus_watchos

Packages that implement network_info_plus_watchos