关键词:
【中文标题】颤振:SFSafariViewController 不像原生 iOS 模式那样打开【英文标题】:flutter: SFSafariViewController doesn't open like a native iOS modal 【发布时间】:2020-06-16 08:35:25 【问题描述】:为了在我的 Flutter 应用中使用 SFSafariViewController,我使用了这个包:flutter_inappwebview: ^3.3.0+3
虽然这可行,但 SFSafariViewController 出现的动画中存在一个错误。
注意这一点:
实际行为
预期行为
请注意,在第二个 GIF 中,应用程序本身是如何被推回的,而在第一个 GIF 中,我们可以看到创建了一个半透明的视图,而不是应用程序的原生推回动画。
这是我正在使用的代码:
final ChromeSafariBrowser browser =
MyChromeSafariBrowser(MyInAppBrowser());
await browser.open(
url: 'https://google.com',
options: ChromeSafariBrowserClassOptions(
ios: IOSSafariOptions(
barCollapsingEnabled: true,
presentationStyle: IOSUIModalPresentationStyle.POPOVER)));
这是 MyChromeSafariBrowser 和 MyInAppBrowser 类的 Gist。
你能帮我解决这个问题吗?
【问题讨论】:
【参考方案1】:您应该向flutter_inappwebview 提交问题。该包使用本机模式演示文稿,看起来它做得不正确。
如果您想使用 modal_bottom_sheet 包作为您附加的 gif,则不能使用 ChromeSafariBrowser
,而需要使用 InAppWebView
。
ChromeSafariBrowser
是 Flutter 外部的原生活动,InAppWebView
是封装在 Flutter 内部的原生视图。
InAppWebView(
initialUrl: "https://flutter.dev/",
initialHeaders: ,
initialOptions: InAppWebViewGroupOptions(
crossPlatform: InAppWebViewOptions(
debuggingEnabled: true,
)
),
onWebViewCreated: (InAppWebViewController controller)
webView = controller;
,
onLoadStart: (InAppWebViewController controller, String url)
setState(()
this.url = url;
);
,
onLoadStop: (InAppWebViewController controller, String url) async
setState(()
this.url = url;
);
,
onProgressChanged: (InAppWebViewController controller, int progress)
setState(()
this.progress = progress / 100;
);
,
),
【讨论】:
【参考方案2】:这已在 v4.0.0 版本中得到修复,现在可以通过设置获得预期的行为
presentationStyle: IOSUIModalPresentationStyle.POPOVER
更多信息在这里:https://pub.dev/packages/flutter_inappwebview#-changelog-tab-
【讨论】:
SFSafariViewController 作为子视图
】SFSafariViewController作为子视图【英文标题】:SFSafariViewControllerassubview【发布时间】:2016-05-1613:29:53【问题描述】:我想使用SFSafariViewController但仍然在下面添加一些我自己的按钮。我还没有找到方法来做到这一点。我尝试过使用... 查看详情
在 sfsafariviewcontroller 中隐藏控件
】在sfsafariviewcontroller中隐藏控件【英文标题】:Hidecontrolsinsfsafariviewcontroller【发布时间】:2019-07-1711:09:05【问题描述】:letsfViewController=SFSafariViewController(url:url)sfViewController.delegate=selfself.ViewC!.present(sfViewControlle 查看详情
SFSafariViewController 详细信息
】SFSafariViewController详细信息【英文标题】:SFSafariViewControllerdetails【发布时间】:2017-06-2004:27:55【问题描述】:我在这里,第一次使用SFSafariViewController。在我像其他人一样直接打开Safari或使用WKWebView之前。根据我在网上找到的... 查看详情
SFSafariViewController 关闭后的背景音频
】SFSafariViewController关闭后的背景音频【英文标题】:SFSafariViewControllerbackgroundaudioafterclosing【发布时间】:2019-08-1313:52:19【问题描述】:我有一个使用SFSafariViewController加载网页的应用,并且用户收听了一些音频。即使用户关闭SFS... 查看详情
SFSafariViewController 显示任何 URL 的空白屏幕
】SFSafariViewController显示任何URL的空白屏幕【英文标题】:SFSafariViewControllerdisplaysemptyscreenforanyURL【发布时间】:2017-08-1118:41:38【问题描述】:我正在尝试使用SFSafariViewController显示URL。这是我的代码:(topmostController指向,是的,... 查看详情
检测 SFSafariViewController 中的 URL 更改
】检测SFSafariViewController中的URL更改【英文标题】:DetectURLchangeinSFSafariViewController【发布时间】:2017-02-1220:13:56【问题描述】:我有一个SFSafariViewController,当用户点击我的应用程序中的链接时它会打开。我需要检测URL何时更改,... 查看详情
FBSDK 登录 - SFSafariViewController 已禁用?
】FBSDK登录-SFSafariViewController已禁用?【英文标题】:FBSDKLogin-SFSafariViewControllerisdisabled?【发布时间】:2016-09-0810:32:37【问题描述】:我的应用程序在一夜之间遇到了一个问题,我认为这是一个编码错误。问题是SFSafariViewController... 查看详情
使用 SFSafariViewController 下载文档
】使用SFSafariViewController下载文档【英文标题】:DownloaddocumentswithSFSafariViewController【发布时间】:2017-01-0706:12:55【问题描述】:SFSafariViewController不能下载文件吗?我正在尝试这样做,但没有出现“保存到”对话框。它从在原生Saf... 查看详情
使用 SFSafariViewController 的主要优势是啥?
】使用SFSafariViewController的主要优势是啥?【英文标题】:WhatisthemainadvantageofusingSFSafariViewController?使用SFSafariViewController的主要优势是什么?【发布时间】:2017-01-0905:19:13【问题描述】:如果我们使用[[UIApplicationsharedApplication]openUr... 查看详情
指定 SFSafariViewController 用户代理
】指定SFSafariViewController用户代理【英文标题】:specifySFSafariViewControlleruseragent【发布时间】:2017-08-0707:04:36【问题描述】:我在指定从SFSafariViewController访问时遇到问题,因为它具有与Safari浏览器完全相同的用户代理。我要做的... 查看详情
SFSafariViewController 加载空白页
】SFSafariViewController加载空白页【英文标题】:SFSafariViewControllerloadingblankwhitepage【发布时间】:2016-09-2313:51:08【问题描述】:我正在使用SFSafariViewController在我的iOS应用程序中打开一个URL。它在iOS9上运行良好,但在将我的设备更... 查看详情
如何快速关闭 SFSafariViewController
】如何快速关闭SFSafariViewController【英文标题】:HowtodismissaSFSafariViewControllerinswift【发布时间】:2020-05-0818:50:56【问题描述】:我有一个函数可以实例化并显示一个显示登录页面的SFSafariViewControllerpublicfuncauthorizeSafariEmbedded(fromcontr... 查看详情
如何防止通过推送 SFSafariViewController 解雇 UITabBarController?
】如何防止通过推送SFSafariViewController解雇UITabBarController?【英文标题】:HowtopreventdismissalofUITabBarControllerbypushedSFSafariViewController?【发布时间】:2019-04-1912:23:57【问题描述】:我正在将SFSafariViewController推入UITabBarController。但是单... 查看详情
SFSafariViewController 完成按钮不起作用/触摸区域太小
】SFSafariViewController完成按钮不起作用/触摸区域太小【英文标题】:SFSafariViewControllerDonebuttonnotworking/touchareatoosmall【发布时间】:2017-05-2618:25:47【问题描述】:我在SFSafariViewController中呈现如下链接:SFSafariViewController*sfvc=[[SFSafariV... 查看详情
SfSafariViewController 和共享 cookie 存储
】SfSafariViewController和共享cookie存储【英文标题】:SfSafariViewControllerandsharedcookiestorage【发布时间】:2019-10-2314:30:07【问题描述】:SFSafariViewController(SVC)是在iOS9中引入的,SVC可以从Mobilesafari而不是从应用程序读取cookie,它可以写... 查看详情
Android 相当于 iOS 的 SFSafariViewController
】Android相当于iOS的SFSafariViewController【英文标题】:AndroidequivalentofiOS\'SFSafariViewController【发布时间】:2020-06-2709:58:53【问题描述】:在iOS上,有3种显示网页内容的方式(正如一位iOS开发人员告诉我的):UIWebView显示在UIControllerVi... 查看详情
如何在 SwiftUI 中使用 SFSafariViewController?
】如何在SwiftUI中使用SFSafariViewController?【英文标题】:HowdoIuseSFSafariViewControllerwithSwiftUI?【发布时间】:2019-06-0920:10:00【问题描述】:我正在尝试从NavigationButton呈现SFSafariViewController,但我不确定如何使用SwiftUI来实现。在UIKit中... 查看详情
是否可以在 UITabBarController 内显示 SFSafariViewController?
】是否可以在UITabBarController内显示SFSafariViewController?【英文标题】:IsitpossibletodisplayaSFSafariViewControllerinsideofaUITabBarController?【发布时间】:2016-05-0703:50:48【问题描述】:我想在标签中加载SFSafariViewController,因此标签栏位于整个S... 查看详情