在Safari的情况下,IOS WKWebView和UIWebView没有加载JavaScript注册表单

时间:2017-06-08 20:31:51

标签: javascript ios swift3 safari uiwebview

在Safari中,我的注册表单JavaScript代码工作正常,但在UIWebView和WKWebView中,该表单未加载。

这是我要审核的代码。

import UIKit
import WebKit


class ViewController: UIViewController, WKNavigationDelegate {

@IBOutlet weak var Webview: UIWebView!

var webView: WKWebView!
var websites = ["lampecompany.com", "lampecompany.com"]

override func loadView() {
    webView = WKWebView()
    webView.navigationDelegate = self
    view = webView
}
override func viewDidLoad() {
    super.viewDidLoad()

    let url = URL(string: "https://" + websites[0])!
    webView.load(URLRequest(url: url) as URLRequest)
    webView.allowsBackForwardNavigationGestures = true

}

主页面打开正确,然后菜单 - >应用,在此屏幕上应用此处表单不显示。

以下是两张截图。 Safari和WKWebView。

enter image description here enter image description here

有关此问题的任何帮助,我的WKWebView开始表现得像Safari一样,并且正如Safari浏览器那样正确地打开每一个和所有内容。

当我将此网站链接放在此WKWebView浏览器中时,它的工作原理。 https://github.com/mbarnig/WKWebView

所以为什么不在我的代码中。我在我的应用程序中使用了相同的代码但是静脉。

先谢谢你!

1 个答案:

答案 0 :(得分:5)

您的网页注册表单(iframe)存在SSL问题。

在iOS中,如果您要加载http网址,则必须在App Transport Security Settings文件中添加info.plist

    <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>

我通过以下方式找到了问题。

  1. 启用Safari开发者模式Safari-&gt;偏好 - &gt;高级 - &gt;节目 菜单上的开发者选项。
  2. 在模拟器和Open Safari上运行您的应用 Mac上的浏览器。
  3. 转到“开发者”菜单 - &gt;模拟器 - &gt;选择 你的网站网址。
  4. 您将获得网页的控制台日志。
  5. 请参阅下面的网页控制台日志。

    enter image description here

    错误:无法加载资源:发生了SSL错误,并且与 https://www.lampeplacementservices.com/LampeOptin/LampeOptinReferralForm.html的安全连接