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

Ars*_*sal 2 javascript safari uiwebview ios swift3

在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

}
Run Code Online (Sandbox Code Playgroud)

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

这是附加的截图.Safari和WKWebView.

在此输入图像描述 在此输入图像描述

任何有关这方面的帮助,我的WKWebView开始表现得像Safari,并像Safari浏览器一样正确打开每一个.

当我把我的网站链接放在这个WKWebView浏览器中然后它的工作. https://github.com/mbarnig/WKWebView

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

先感谢您!

Sub*_*n P 5

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

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

    <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>
Run Code Online (Sandbox Code Playgroud)

我用以下方式找到了这个问题.

  1. 在菜单上启用Safari开发人员模式Safari->首选项 - >高级 - >显示开发人员选项.
  2. 在模拟器上运行您的应用程序并在Mac上打开Safari浏览器.
  3. 转到开发人员菜单 - >模拟器 - >选择您的站点URL.
  4. 您将获得网页的控制台日志.

请参阅下面的网页控制台日志.

在此输入图像描述

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