@@ -27,7 +27,6 @@ internal class AndroidWebKitWebViewManager : WebViewManager
27
27
private static readonly AUri AndroidAppOriginUri = AUri . Parse ( AppOrigin ) ! ;
28
28
private readonly AWebView _webview ;
29
29
private readonly string _contentRootRelativeToAppRoot ;
30
- private WebMessagePort [ ] ? _nativeToJSPorts ;
31
30
32
31
/// <summary>
33
32
/// Constructs an instance of <see cref="AndroidWebKitWebViewManager"/>.
@@ -74,33 +73,21 @@ internal bool TryGetResponseContentInternal(string uri, bool allowFallbackOnHost
74
73
75
74
internal void SetUpMessageChannel ( )
76
75
{
77
- _nativeToJSPorts = _webview . CreateWebMessageChannel ( ) ;
76
+ // These ports will be closed automatically when the webview gets disposed.
77
+ var nativeToJSPorts = _webview . CreateWebMessageChannel ( ) ;
78
78
79
79
var nativeToJs = new BlazorWebMessageCallback ( message =>
80
80
{
81
81
MessageReceived ( AppOriginUri , message ! ) ;
82
82
} ) ;
83
83
84
- var destPort = new [ ] { _nativeToJSPorts [ 1 ] } ;
84
+ var destPort = new [ ] { nativeToJSPorts [ 1 ] } ;
85
85
86
- _nativeToJSPorts [ 0 ] . SetWebMessageCallback ( nativeToJs ) ;
86
+ nativeToJSPorts [ 0 ] . SetWebMessageCallback ( nativeToJs ) ;
87
87
88
88
_webview . PostWebMessage ( new WebMessage ( "capturePort" , destPort ) , AndroidAppOriginUri ) ;
89
89
}
90
90
91
- protected override async ValueTask DisposeAsyncCore ( )
92
- {
93
- await base . DisposeAsyncCore ( ) ;
94
-
95
- if ( _nativeToJSPorts is not null )
96
- {
97
- foreach ( var port in _nativeToJSPorts )
98
- {
99
- port ? . Close ( ) ;
100
- }
101
- }
102
- }
103
-
104
91
private class BlazorWebMessageCallback : WebMessagePort . WebMessageCallback
105
92
{
106
93
private readonly Action < string ? > _onMessageReceived ;
0 commit comments