@@ -10,7 +10,12 @@ import (
10
10
"github.com/pkg/errors"
11
11
)
12
12
13
- const channelName = "plugins.flutter.io/url_launcher"
13
+ var channelNames = []string {
14
+ "plugins.flutter.io/url_launcher" ,
15
+ "plugins.flutter.io/url_launcher_macos" ,
16
+ "plugins.flutter.io/url_launcher_windows" ,
17
+ "plugins.flutter.io/url_launcher_linux" ,
18
+ }
14
19
15
20
// ImagePickerPlugin implements flutter.Plugin and handles method calls to
16
21
// the plugins.flutter.io/url_launcher channel.
@@ -20,13 +25,15 @@ var _ flutter.Plugin = &UrlLauncherPlugin{} // compile-time type check
20
25
21
26
// InitPlugin initializes the plugin.
22
27
func (p * UrlLauncherPlugin ) InitPlugin (messenger plugin.BinaryMessenger ) error {
23
- channel := plugin .NewMethodChannel (messenger , channelName , plugin.StandardMethodCodec {})
24
- channel .HandleFunc ("launch" , p .launch )
25
- channel .HandleFunc ("canLaunch" , p .canLaunch )
28
+ for _ , channelName := range channelNames {
29
+ channel := plugin .NewMethodChannel (messenger , channelName , plugin.StandardMethodCodec {})
30
+ channel .HandleFunc ("launch" , p .launch )
31
+ channel .HandleFunc ("canLaunch" , p .canLaunch )
26
32
27
- // Ignored: The plugins doesn't handle WebView.
28
- // This call will not do anything, because there is no WebView to close.
29
- channel .HandleFunc ("closeWebView" , func (_ interface {}) (interface {}, error ) { return nil , nil })
33
+ // Ignored: The plugins doesn't handle WebView.
34
+ // This call will not do anything, because there is no WebView to close.
35
+ channel .HandleFunc ("closeWebView" , func (_ interface {}) (interface {}, error ) { return nil , nil })
36
+ }
30
37
return nil
31
38
}
32
39
@@ -38,8 +45,8 @@ func (p *UrlLauncherPlugin) launch(arguments interface{}) (reply interface{}, er
38
45
return nil , errors .New ("url is empty" )
39
46
}
40
47
41
- useWebView := argsMap ["useWebView" ].(bool )
42
- if useWebView == true {
48
+ useWebView , ok := argsMap ["useWebView" ].(bool )
49
+ if ok && useWebView == true {
43
50
fmt .Println ("go-flutter-desktop/plugins/url_launcher: WebView aren't supported on desktop." )
44
51
}
45
52
@@ -54,7 +61,7 @@ func (p *UrlLauncherPlugin) launch(arguments interface{}) (reply interface{}, er
54
61
err = errors .New ("Unsupported platform" )
55
62
}
56
63
57
- return nil , err
64
+ return err == nil , err
58
65
}
59
66
60
67
func (p * UrlLauncherPlugin ) canLaunch (arguments interface {}) (reply interface {}, err error ) {
0 commit comments