airwatch_socket_workaround 0.0.3 icon indicating copy to clipboard operation
airwatch_socket_workaround: ^0.0.3 copied to clipboard

PlatformiOS

A workaround for AirWatch MDM Socket problem using dart sockets

airwatch_socket_workaround #

This plugin has been created to enable flutter apps to reach endpoints that are only reachable using a VMWare airwatch per app vpn.

Current status #

In development

TODO #

  • provide simple example using custom HttpClient
  • prepare for publishing
  • add examples for websocket
  • null safety
  • add example for multipart post
  • provide HLD

Getting started #

Example #

Example provides 3 basic use cases:

  • HTTP GET
  • Websocket (WIP)
  • HTTP Post multipart (WIP)

Http requests

Http requests can be sent using the 'native' socket by using AirWatchHttpWorkAround. doRequest method receives a dart http Request which is part of dart http package and handover the request to the native part of the plugin.

Example:

Future<String> get(String endpoint) {
  var request = Request('GET', Uri.parse(endpoint));
  return AirWatchWorkAroundFactory.getInstance().doRequest(request);  
}

Why is this needed? #

Because Flutter(dart actually) currently is not respecting system "proxy" and therefore per APN VPN solutions, like vmware AirWatch do not work. Therefore, this class should only be used in IOS Plugin based Network client

The responsibility of using only in IOS is not enforced in any way by this class, it is delegated to plugin users.

Other considerations #

Why not fetching system proxy? #

Trying to get the current system proxy DO NOT WORK, since the system proxy is always null.

Is there already a bug for this? #

An issue exists in flutter: https://github.com/flutter/flutter/issues/41500

Plugin development #

Actions #

  • Build action is described in .github/workflows/build.yml, it executes flutter pub get and flutter test commands
  • Publish (NOT WORKING) action is described in .github/workflows/public.yml. Currently is not working since i do not wish to upload my personal google credentials to a github secret.
3
likes
100
pub points
0%
popularity

Publisher

unverified uploader

A workaround for AirWatch MDM Socket problem using dart sockets

Repository (GitHub)

Documentation

API reference

License

Icon for licenses.MIT (LICENSE)

Dependencies

flutter, http, logging

More

Packages that depend on airwatch_socket_workaround