Commit 490622b4 authored by Chinmay Garde's avatar Chinmay Garde Committed by GitHub

Add a wrapper for accessing the URL launcher service. (#4688)

parent e41527a8
......@@ -30,3 +30,4 @@ export 'src/services/path_provider.dart';
export 'src/services/shell.dart';
export 'src/services/system_chrome.dart';
export 'src/services/system_sound.dart';
export 'src/services/url_launcher.dart';
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'dart:async';
import 'package:sky_services/flutter/platform/url_launcher.mojom.dart' as mojom;
import 'shell.dart';
mojom.UrlLauncherProxy _initUrlLauncherProxy() {
return shell.connectToApplicationService(
mojom.UrlLauncher.serviceName,
mojom.UrlLauncher.connectToService);
}
final mojom.UrlLauncherProxy _connectedUrlLauncherService = _initUrlLauncherProxy();
/// Allows applications to delegate responsbility of handling certain URLs to
/// the underlying platform.
class UrlLauncher {
UrlLauncher._();
/// Parse the specified URL string and delegate handling of the same to the
/// underlying platform.
///
/// Arguments:
///
/// * [urlString]: The URL string to be parsed by the underlying platform and
/// before it attempts to launch the same.
///
/// Return Value:
///
/// boolean indicating if the intent to handle the URL was successfully
/// conveyed to the to underlying platform and the platform could
/// successfully handle the same. The platform is responsible for URL
/// parsing.
static Future<bool> launch(String urlString) {
Completer<bool> completer = new Completer<bool>();
_connectedUrlLauncherService.launch(urlString, (bool success) {
completer.complete(success);
});
return completer.future;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment