Skip to content

Commit 91758c0

Browse files
authored
Merge pull request #74 from niuhuan/fix-url_launcher
fix: url_launcher
2 parents 1ef47ba + 1c10c4c commit 91758c0

File tree

1 file changed

+17
-10
lines changed

1 file changed

+17
-10
lines changed

url_launcher/plugin.go

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,12 @@ import (
1010
"github.com/pkg/errors"
1111
)
1212

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+
}
1419

1520
// ImagePickerPlugin implements flutter.Plugin and handles method calls to
1621
// the plugins.flutter.io/url_launcher channel.
@@ -20,13 +25,15 @@ var _ flutter.Plugin = &UrlLauncherPlugin{} // compile-time type check
2025

2126
// InitPlugin initializes the plugin.
2227
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)
2632

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+
}
3037
return nil
3138
}
3239

@@ -38,8 +45,8 @@ func (p *UrlLauncherPlugin) launch(arguments interface{}) (reply interface{}, er
3845
return nil, errors.New("url is empty")
3946
}
4047

41-
useWebView := argsMap["useWebView"].(bool)
42-
if useWebView == true {
48+
useWebView, ok := argsMap["useWebView"].(bool)
49+
if ok && useWebView == true {
4350
fmt.Println("go-flutter-desktop/plugins/url_launcher: WebView aren't supported on desktop.")
4451
}
4552

@@ -54,7 +61,7 @@ func (p *UrlLauncherPlugin) launch(arguments interface{}) (reply interface{}, er
5461
err = errors.New("Unsupported platform")
5562
}
5663

57-
return nil, err
64+
return err == nil, err
5865
}
5966

6067
func (p *UrlLauncherPlugin) canLaunch(arguments interface{}) (reply interface{}, err error) {

0 commit comments

Comments
 (0)