ios WKWebView和亚马逊联盟图片源

pkln4tw6  于 2023-03-20  发布在  iOS
关注(0)|答案(1)|浏览(99)

我正在我的网站中使用亚马逊附属图片链接,然后使用Swift 4中的WKWebView转换为应用程序。
如果我直接从Safari或任何其他浏览器访问该网页,亚马逊联盟链接工作得非常好。但图像不显示在使用WKWebView的应用程序中:取而代之的是显示一个小问号图标,当我点击这个小图标时,它会打开正确的亚马逊链接。
下面是我的ViewController.swift:

import UIKit
import WebKit

class ViewController: UIViewController, WKNavigationDelegate {
    var webView: WKWebView!

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

    override func viewDidLoad() {
        super.viewDidLoad()

        // 1
        let url = URL(string: "http://myurl/")!
        webView.load(URLRequest(url: url))

        // 2
        let refresh = UIBarButtonItem(barButtonSystemItem: .refresh, target: webView, action: #selector(webView.reload))
        toolbarItems = [refresh]
        navigationController?.isToolbarHidden = false
    }

    func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
        title = webView.title
    }
}

下面是我的HTML中的Amazon子公司链接:

<a target="_blank"  href="https://rads.stackoverflow.com/amzn/click/com/B00KEBYK88" rel="nofollow noreferrer"><img border="0" src="https://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&MarketPlace=US&ASIN=B00KEBYK88&ServiceVersion=20070822&ID=AsinImage&WS=1&Format=_SL160_&tag=questionrs-20" ></a><img src="https://ir-na.amazon-adsystem.com/e/ir?t=questionrs-20&l=am2&o=1&a=B00KEBYK88" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />

注意它有一个img标签:

<img border="0" src="https://ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&MarketPlace=US&ASIN=B00KEBYK88&ServiceVersion=20070822&ID=AsinImage&WS=1&Format=_SL160_&tag=questionrs-20" >

如果我把这个img标签直接放在我的HTML中,图像仍然不会通过应用程序中的WKWebView显示(但如果我直接在任何浏览器中打开网站,图像显示都很好)
如果我在浏览器中打开图像src,它将转换为:

https://images-na.ssl-images-amazon.com/images/I/41ZIpVTW8-L._SL160_.jpg

而且,如果我把这个新的URL放在src中,WKWebView可以显示它。
有没有可能让WKWebView显示原始图像的URL?

bfnvny8b

bfnvny8b1#

您需要在info.plist的应用传输安全设置字典中添加Allow Arbitrary Loads in Web Content = YESAllow Arbitrary Loads = YES
iOS9 does not load insecure resources from a secure page (SSL/HTTPS)

相关问题