问题标签 [sfsafariviewcontroller]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - iTunes Connect 中的无限制 Web 访问是什么意思
当您将您的应用程序提交到 Apple 应用商店时,有一个名为“评级”的部分,您应该根据图表对您的内容进行评级,并确定内容出现的频率。
有一个选项称为“不受限制的网络访问”,在 Internet 和iTunes Connect 开发人员指南上都没有关于此的更多详细信息。你到处都能找到的是:
如果您的应用程序允许用户导航和查看网页,例如使用嵌入式浏览器,请选择是。
这是什么意思?这是否意味着您的应用可以在嵌入式或 Safari 浏览器中打开链接?或者这是否意味着您的应用程序具有浏览器,用户可以在其中输入 URL 并不受限制地浏览网络?因为对这个问题说“是”将使您的应用程序 17+!
如果这意味着从您的应用程序(Safari 或嵌入式)打开链接,那么其他具有嵌入式浏览器功能的应用程序如何获得 4+ 评级(如 Twitter 和 Facebook)?从截图中可以看出,没有办法选择这个而不被评为 17+
更新:我的应用程序获得了嵌入式 WebView (TOWebViewController) 的批准,答案为“否”(4+)。正如答案所提到的,您让用户通过互联网导航的任何方式,例如动态地址栏,这意味着它应该是“是”(17+),因为不可能在您的 WebView 上进行家长控制。
更新 2:自 iOS 9 发布以来,Apple 引入了SFSafariViewController,这是一种在 Internet 上打开任何 URL 的方式。此功能还有一个地址栏,但只读。所以用户不能在没有家长控制的情况下上网。它还继承了 Safari 的内容拦截(广告、显式内容等)。我非常肯定通过在 iOS 9 或更高版本中使用 SFSafariViewController 您仍然可以选择 4+,因为具有家长控制的设备无论如何都无法打开任何 URL。(如果我错了,请告诉我)
更新 3:Twitter 现在是 17+,基于以下几点:
您必须年满 17 岁才能下载此应用程序。
不经常/轻度亵渎或粗俗幽默
频繁/强烈的成熟/暗示性主题
不频繁/轻度的色情内容和裸露
更新 4:可以在您的应用程序中使用 Twitter 内容而无需继承其评级 (17+)。我的应用程序正在显示推文,但由于用户是经过验证和信任的公众人物,我可以降到 12 岁以上:
不频繁/轻度的色情内容和裸露
不经常/轻度亵渎或粗俗幽默
不常见/轻度成熟/暗示性主题
ios - WebView 上是否提供扫描信用卡选项?
新的 iOS8 扫描信用卡选项在 Safari 上非常棒。
有人设法使它在 Web 应用程序的 WebView 中工作吗?
我正在使用有效的 SSL 证书,并且我正在使用正确的 ID 作为输入字段,如下所述:https ://stackoverflow.com/a/25925195/3949713
谢谢。
ios - SFSafariViewController 崩溃:指定的 URL 具有不受支持的方案
我的代码:
这仅在初始化时崩溃,但有例外:
指定的 URL 具有不受支持的方案。仅支持 HTTP 和 HTTPS URL
当我使用url = NSURL(string: "http://www.google.com")
时,一切都很好。我实际上是从 API 加载 URL,因此,我不能确定它们是否会以http(s)://
.
如何解决这个问题?我应该http://
始终检查和前缀,还是有解决方法?
ios - 作为应用程序一部分包含的扩展程序何时显示在 SFSafariViewController UIActivityViewController 中?
我的应用程序包中包含两个扩展 - 一个操作扩展和一个共享扩展。这两个都查找 URL 或网页作为激活密钥。
在我的应用程序内部,当出现一个SFSafariViewController
并且用户按下共享按钮时,无论用户是否在应用程序之外“安装”了它们,我的两个扩展程序都会显示在共享表中。
我的问题:是什么决定了应用程序包中包含的扩展何时/是否显示在主应用程序内SFSafariViewController
显示的共享表中?
一点背景
我的想法是子类UIActivity
化并将我的扩展的实现包含在子类中。然后,我会使用 的委托方法将它们传递给 SafariVC,SFSafariViewController
这样它们就会出现在共享表中,而用户甚至都不知道它们的存在。
但是,正如我的问题所述,我的真正扩展似乎无论如何都会出现。
ios - SFSafariViewController OAuth 实现
在苹果 WWDC 2015-504 中,SFSafariViewController 已经公布。Ricky Mondello 声称新的安全、稳定和快速的嵌入式 Safari 浏览器能够创建身份验证流程,只需两个简单的步骤,通过 AppDelegate。
我想试一试,所以我使用 SFSafariViewController 对 OAuth2 的实现进行了一些搜索……我几乎什么也没找到。有很多文章解释了为什么 SF(...) 比 UIWebView 等更好,但我找不到有效的实现,甚至在 GitHub 中也找不到。
我尝试打开一个简单的网址,例如“ http://www.google.com ”,一切正常。
我想更进一步:我尝试使用 OAuth 实现登录以接收身份验证令牌(流程的第一步)。所以将我的 SF(...) 发送到“ https://website.com/auth?ID=...&access= ...”并设置为重定向 URI testApp://(我的应用程序的名称)。
我期待看到请求 -application:openURL:sourceApplication:annotation:
但什么也没发生。我还在“LSApplicationQueriesSchemes”中添加了“testApp ” ,但我没有运气。
在这个问题上挣扎了一天,我真的很想知道我做错了什么。
谢谢。
ios - 在 SFSafariViewController 上设置完成按钮颜色
我正在使用SFSafariViewController
访问从UITableViewController
. 因为我的应用程序有一种非常轻盈的感觉,所以我在 中添加了以下代码行AppDelegate
:
运行时SFSafariViewController
,我得到以下信息:
无论如何我可以将Done
按钮的颜色更改为蓝色(默认情况下)?
我在调用时尝试了以下SFSafariViewController
但没有效果:
这些都不起作用。
我当然可以将应用程序保留为默认设置并从 中取出白色设置AppDelegate
,但我希望在应用程序中使用这种方法,因为蓝色在自定义主题中显得过于突出。
对此的任何指导将不胜感激。
facebook - FBSDK FBSDKLoginManager 和 SFSafariViewController 不会关闭
我正在使用最新的 FBSDK,使用 FBSDKLoginManager 登录。我已经全部工作了,但我无法弄清楚的一件事是为什么 SFSafariViewController 在登录重定向后完全没有响应?
这是代码:
这就是发生的事情:
- SFSafariViewController 打开
- Facebook 提示登录
- 回调发生在 AppDelegate.openURL:options: (我通过调用 FBSDKApplicationDelegate.application:openURL:sourceApplication:annotation 返回)。
- Safari 网络视图控制器什么都不做。
所以 SFSafariViewController 是白色/空白的。完成按钮什么都不做。而且我无法关闭它。
我也没有从 loginManager.loginWithReadPermissions 方法获得回调。
有没有人经历过这个?
ios - SFSafariViewController:隐藏导航栏
根据这篇文章,我能够让我的应用程序通过 SFSafariViewController 自动加载 url ,而且效果很好,唯一的缺点是导航栏。
SFSafariViewController 导航栏在以这种方式使用时有点无用,因为 url 是只读的,并且“完成”链接除了重新加载页面之外什么都不做。因此,我想完全隐藏导航栏。
根据附加到已接受答案的评论,建议将我的根视图控制器设置为我无法工作的 SFSafariViewController。设置很简单,因为只有一个视图控制器,其中包含上述帖子中的代码。
如何隐藏导航栏但仍保持 SFSafariViewController 的优点?或者如果我不能隐藏导航栏,至少隐藏“完成”链接?
代码片段:
----- 工作。导航栏是“隐藏的” -----