Android 如何在Flatter中获得Chrome支持的webview?
我最近注意到,当在一些Android应用程序中打开一个链接时,它们会有类似的外观和感觉,自定义菜单下面会有“由Chrome供电”的自定义操作菜单。该浏览器中使用了什么组件,还是Chromium WebView?希望我能将它们添加到我的下一个项目中,包括在应用程序中打开链接。以实现类似于颤振中的桌面视图 方格:安德烈 webview:chrome支持的webview,具有自定义选项 框架:颤振 LinkedIn应用程序 GMail应用程序 我的医生:Android 如何在Flatter中获得Chrome支持的webview?,android,google-chrome,webview,dart,flutter,Android,Google Chrome,Webview,Dart,Flutter,我最近注意到,当在一些Android应用程序中打开一个链接时,它们会有类似的外观和感觉,自定义菜单下面会有“由Chrome供电”的自定义操作菜单。该浏览器中使用了什么组件,还是Chromium WebView?希望我能将它们添加到我的下一个项目中,包括在应用程序中打开链接。以实现类似于颤振中的桌面视图 方格:安德烈 webview:chrome支持的webview,具有自定义选项 框架:颤振 LinkedIn应用程序 GMail应用程序 我的医生: [√] Flutter (Channel
[√] Flutter (Channel beta, v0.11.9, on Microsoft Windows [Version
10.0.17134.407], locale en-IN)
[√] Android toolchain - develop for Android devices (Android SDK 28.0.3)
[√] Android Studio (version 3.2)
[√] VS Code (version 1.29.1)
[√] VS Code, 64-bit edition (version 1.26.1)
[!] Connected device
! No devices available
我的github问题:
提前感谢。您可以使用此软件包: 但请注意,此行为仅在Android上有效,在iOS上将使用Safari webview。您可以尝试我的插件(编辑:它已重命名为)。为此,您需要使用该类 它在Android和iOS上使用 您可以使用InAppBrowser回退实例初始化ChromeSafariBrowser实例 例如:
导入“包装:颤振/材料.省道”;
导入“包:flatter_inappwebview/flatter_inappwebview.dart”;
类MyInAppBrowser扩展了InAppBrowser{
@凌驾
未来onLoadStart(字符串url)异步{
打印(“\n\n开始的$url\n\n”);
}
@凌驾
未来onLoadStop(字符串url)异步{
打印(“\n\n阻止的$url\n\n”);
}
@凌驾
void onLoadError(字符串url、int代码、字符串消息){
打印(“\n\n无法加载$url..错误:$message\n\n”);
}
@凌驾
void onExit(){
打印(“\n\n浏览器已关闭!\n\n”);
}
}
类MyChromeSafariBrowser扩展了ChromeSafariBrowser{
MyChromeSafariBrowser(browserFallback):超级(bFallback:browserFallback);
@凌驾
无效开启(){
打印(“打开ChromeSafari浏览器”);
}
@凌驾
void onload(){
打印(“已加载ChromeSafari浏览器”);
}
@凌驾
一经关闭无效(){
打印(“ChromeSafari浏览器关闭”);
}
}
void main()=>runApp(新的MyApp());
类MyApp扩展了StatefulWidget{
最终ChromeSafariBrowser浏览器=新的MyChromeSafariBrowser(新的MyInAppBrowser());
@凌驾
_MyAppState createState()=>new_MyAppState();
}
类MyAppState扩展了状态{
@凌驾
void initState(){
super.initState();
}
@凌驾
小部件构建(构建上下文){
返回材料PP(
家:脚手架(
appBar:appBar(
标题:常量文本(“ChromeSafariBrowser示例”),
),
正文:中(
孩子:升起按钮(
onPressed:()异步{
等待widget.browser.open(
url:“https://flutter.dev/",
选项:ChromeSafariBrowserClassOptions(
AndroidChromeCustomAbsOptions:AndroidChromeCustomAbsOptions(addShareButton:false),
iosafarioptions:iosafarioptions(barCollapsingEnabled:true));
},
子项:文本(“打开Chrome Safari浏览器”),
),
),
);
}
}
那不是一个网络视图,叫做Chrome自定义选项卡
是的,那是如何在flutter上获得它的?投票给我的问题:)我正在使用你的插件。您知道是否可以全屏使用ChromeSafariBrowser类?(没有显示URL栏)我刚刚发现,根据这篇文章,这是不可能的:是否可以在您的webview中运行自定义javascript代码?如果您在发布版本中遇到冻结应用程序的问题,请检查此问题