Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
F
Flutter Inappwebview
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
李增强
Flutter Inappwebview
Commits
21f4838f
Commit
21f4838f
authored
4 years ago
by
Daniel Kao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
use PlatformViewLink widget for Android WebView
parent
56e0f309
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
35 additions
and
32 deletions
+35
-32
example/android/app/src/main/AndroidManifest.xml
example/android/app/src/main/AndroidManifest.xml
+6
-0
lib/src/in_app_webview.dart
lib/src/in_app_webview.dart
+29
-32
No files found.
example/android/app/src/main/AndroidManifest.xml
View file @
21f4838f
...
...
@@ -85,5 +85,11 @@
android:resource=
"@xml/provider_paths"
/>
</provider>
<!-- Hybrid composition -->
<meta-data
android:name=
"io.flutter.embedded_views_preview"
android:value=
"true"
/>
</application>
</manifest>
This diff is collapsed.
Click to expand it.
lib/src/in_app_webview.dart
View file @
21f4838f
...
...
@@ -3,6 +3,7 @@ import 'dart:typed_data';
import
'package:flutter/foundation.dart'
;
import
'package:flutter/material.dart'
;
import
'package:flutter/rendering.dart'
;
import
'package:flutter/services.dart'
;
import
'package:flutter/widgets.dart'
;
import
'package:flutter/gestures.dart'
;
...
...
@@ -339,41 +340,37 @@ class _InAppWebViewState extends State<InAppWebView> {
@override
Widget
build
(
BuildContext
context
)
{
if
(
defaultTargetPlatform
==
TargetPlatform
.
android
)
{
return
AndroidView
(
return
PlatformViewLink
(
viewType:
'com.pichillilorenzo/flutter_inappwebview'
,
onPlatformViewCreated:
_onPlatformViewCreated
,
gestureRecognizers:
widget
.
gestureRecognizers
,
layoutDirection:
TextDirection
.
rtl
,
creationParams:
<
String
,
dynamic
>{
'initialUrl'
:
'
${Uri.parse(widget.initialUrl)}
'
,
'initialFile'
:
widget
.
initialFile
,
'initialData'
:
widget
.
initialData
?.
toMap
(),
'initialHeaders'
:
widget
.
initialHeaders
,
'initialOptions'
:
widget
.
initialOptions
?.
toMap
()
??
{},
'contextMenu'
:
widget
.
contextMenu
?.
toMap
()
??
{},
'windowId'
:
widget
.
windowId
surfaceFactory:
(
BuildContext
context
,
PlatformViewController
controller
,
)
{
return
AndroidViewSurface
(
controller:
controller
,
gestureRecognizers:
widget
.
gestureRecognizers
??
const
<
Factory
<
OneSequenceGestureRecognizer
>>{},
hitTestBehavior:
PlatformViewHitTestBehavior
.
opaque
,
);
},
onCreatePlatformView:
(
PlatformViewCreationParams
params
)
{
return
PlatformViewsService
.
initSurfaceAndroidView
(
id:
params
.
id
,
viewType:
'com.pichillilorenzo/flutter_inappwebview'
,
layoutDirection:
TextDirection
.
rtl
,
creationParams:
<
String
,
dynamic
>{
'initialUrl'
:
'
${Uri.parse(widget.initialUrl)}
'
,
'initialFile'
:
widget
.
initialFile
,
'initialData'
:
widget
.
initialData
?.
toMap
(),
'initialHeaders'
:
widget
.
initialHeaders
,
'initialOptions'
:
widget
.
initialOptions
?.
toMap
()
??
{}
},
creationParamsCodec:
const
StandardMessageCodec
(),
)
..
addOnPlatformViewCreatedListener
(
params
.
onPlatformViewCreated
)
..
addOnPlatformViewCreatedListener
((
id
)
=>
_onPlatformViewCreated
(
id
))
..
create
();
},
creationParamsCodec:
const
StandardMessageCodec
(),
);
// onLongPress issue: https://github.com/flutter/plugins/blob/f31d16a6ca0c4bd6849cff925a00b6823973696b/packages/webview_flutter/lib/src/webview_android.dart#L31
/*return GestureDetector(
onLongPress: () {},
excludeFromSemantics: true,
child: AndroidView(
viewType: 'com.pichillilorenzo/flutter_inappwebview',
onPlatformViewCreated: _onPlatformViewCreated,
gestureRecognizers: widget.gestureRecognizers,
layoutDirection: TextDirection.rtl,
creationParams: <String, dynamic>{
'initialUrl': '${Uri.parse(widget.initialUrl)}',
'initialFile': widget.initialFile,
'initialData': widget.initialData?.toMap(),
'initialHeaders': widget.initialHeaders,
'initialOptions': initialOptions
},
creationParamsCodec: const StandardMessageCodec(),
),
);*/
}
else
if
(
defaultTargetPlatform
==
TargetPlatform
.
iOS
)
{
return
UiKitView
(
viewType:
'com.pichillilorenzo/flutter_inappwebview'
,
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment