- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的应用程序中,我们使用 Segpay 进行支付,没有合适的 SDK 可以集成,然后我们从支持的 URL 中创建 URL 并在 SafariViewController
中打开它。
当用户成功完成付款时,我们需要将用户带入主页,如何从 SafariViewController
知道状态为成功。
最佳答案
您可以使用 WKWebview
代替 safari,如下所示。
创建 WKWebView
的属性
private var webView: WKWebView!
按照 viewDidLoad
方法初始化 webview...
let jScript = "var meta = document.createElement('meta'); meta.setAttribute('name', 'viewport'); meta.setAttribute('content', 'width=device-width'); document.getElementsByTagName('head')[0].appendChild(meta);"
let wkUScript = WKUserScript(source: jScript, injectionTime: .atDocumentStart, forMainFrameOnly: true)
let wkUController = WKUserContentController()
wkUController.addUserScript(wkUScript)
let webConfiguration = WKWebViewConfiguration()
webConfiguration.userContentController = wkUController
webView = WKWebView(frame: view.bounds, configuration: webConfiguration)
webView.navigationDelegate = self
view.addSubview(webView)
let url = URL(string: "https://...") //set url to load in webview
let req = URLRequest(url: url)
webView.load(req)
实现WKWebView
的以下委托(delegate)方法。
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
webView.evaluateJavaScript("document.getElementById('response_success').textContent", completionHandler: { (html, error) in
if let content = html as? String {
print(content)
if content.lowercased().contains("ok") { //here you can place the status coming from server for comparison
//handle success response
}
}
})
webView.evaluateJavaScript("document.getElementById('response_fail').textContent", completionHandler: { (html, error) in
if let content = html as? String {
print(content)
if content.lowercased().contains("fail") { //here you can place the status coming from server for comparison
//handle fail response
}
}
})
}
Note: You need to ask your backend team to post data in webview using tag with id response_success, if response is success & response_fail, if response is failed.(You can change it as per your requirements)
关于ios - 如何将文本从 SafariViewController 快速获取到我们的应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59189771/
我有一个仅处于纵向模式的 ViewController。它提供了一个 SafariViewController。是否可以将 SafariViewController 的方向更改为横向,从而保持 Vie
在我的 SpriteKit 游戏中,都是横向的,我展示了一个 SafariViewController。 func showSafariViewController(forURL url: Strin
我有一个带有一些 TableView Controller 的应用程序。在每个单元格的最后一个我有一个不同的网址。然后我决定插入 SafariVC,但发生的情况是它就像作为 FirstResponde
在我的应用程序中,我们使用 Segpay 进行支付,没有合适的 SDK 可以集成,然后我们从支持的 URL 中创建 URL 并在 SafariViewController 中打开它。 当用户成功完成付
我正在使用 SafariViewController 来显示网页,而不是我从我的应用程序的 NavigationController 推送的默认“完成”按钮来保留我的导航堆栈和后退箭头.但是,我需要隐
我在使用 Swift 2 构建的 iOS 9 应用程序中使用 SFSafariViewController。 我正在尝试打开一个 URL,但由于某种原因失败了。我试过的所有其他 URL 都有效,除了这
我非常新,遵循 Apples 网站上的 swift 入门指南。 我正在尝试创建一个选项卡式应用程序,每个选项卡都是一个价格范围的礼物,每个礼物都是一个带有自己的图像和标签的 tableviewcell
我正在使用 swift 学习 ios 开发,并且正在使用 appauth pod 实现身份验证。我的问题是:是否可以自定义用于登录的 safariviewcontroller?有一些 swift 的示
我想知道是否有办法通过 SafariViewController 安装配置文件(.mobileconfig)。我知道只有 Mail.app 和 Safari.app 有这样做的权限。 因此,如果 Sa
我对有问题的库(Keycloak)提出了类似的问题,但我觉得它实际上可能与库外的代码有关。 我正在尝试将 Safari View Controller 与 Aerogear OAuth2 结合使用,以
Apple 今天拒绝了我的应用程序,建议我不应该强制我的用户使用 Safari 访问我的网页。他们建议使用 iOS9 中新增的 SafariWebController。我去寻找指导,只找到了 Swif
对于网络应用程序,有没有办法(客户端或服务器端)区分来自 MobileSafari 和 SafariViewController(嵌入在任何第 3 方应用程序中)的请求? 我需要这个,因为 Safar
尝试将 Facebook OAuth 与 SafariViewController 结合使用。首先,我用 SafariViewController 打开 authURL,如果用户在 Safari 上登
ChromeCustomTabs 使用 Chrome,SafariViewController 使用 Safari。有没有华为(华为浏览器)的替代品。我可以将华为浏览器用作应用内浏览器吗? 最佳答案
我将 Facebook Login 附加到用 Swift 编写的 iOS 应用程序中,在实现一些内容后,我第一次收到有关打开 Facebook 应用程序的对话框(就像 iOS 中的平常一样),我同意了
当在 AppDelegate 中设置 UIButton.appearance() 时,我正在尝试更改 SFSafariViewController 中导航栏的色调. 例如: AppDelegate f
刚刚发现加载嵌入图像的 HTML 字符串的 UIWebView 无法在 iOS9(GM 种子)上正常显示图像,而之前在 >iOS8。 观看 WWDC SafariViewController 视频后
我正在尝试实现 App Invites来自 Facebook 的功能,我想让我的用户重定向到本地 Facebook 应用程序(如果安装在用户的设备上)。 然而,尽管 Facebook Native 应
我是一名优秀的程序员,十分优秀!