parseUrl method

void parseUrl(
  1. String remoteServerUrl
)

parse url in remote debugging

url structure: http://host/versionId/index.bundle

@param remoteServerUrl remote debugging url

Implementation

void parseUrl(String remoteServerUrl) {
  if (remoteServerUrl == '') {
    return;
  }
  try {
    // final uri = Uri.parse('https://example.com/api/fetch?limit=10,20,30&max=100');
    final url = Uri.parse(remoteServerUrl);
    _scheme = url.scheme;
    _host = url.host;
    _path = url.path;
    int port = url.port;
    if (port > 0) {
      _host = "${_host!}:$port";
    }
    _wsUrl = url.queryParameters['debugUrl'];
    var tempPath = _path;
    if (tempPath != null && tempPath.startsWith("/")) {
      _path = tempPath.substring(1); // remove first character /
      int index = _path?.indexOf("/") ?? -1;
      if (index >= 0) {
        _versionId = _path?.substring(0, index);
      }
    }
    LogUtils.i(
      "Hippy DevRemoteServerData",
      "parseUrl host:$_host, versionId:$_versionId",
    );
  } catch (e) {
    LogUtils.e(
      "Hippy DevRemoteServerData",
      "parseUrl error, ${e.toString()}",
    );
  }
}