- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 ViewController 类是:
import UIKit
import WebKit
class ViewController: UIViewController, WKUIDelegate, WKNavigationDelegate {
@IBOutlet weak var testView: UIView!
override func viewDidLoad() {
super.viewDidLoad()
let b = AnotherClass(mUrl: "http://touhidapps.com")
b.myWebView.navigationDelegate = self
self.testView.addSubview(b.bannerView(nd: self, ud:self))
}
}
我的另一个类(class)是:
import Foundation
import WebKit
class AnotherClass: NSObject, WKUIDelegate, WKNavigationDelegate {
public var myWebView = WKWebView()
var u = ""
public init(mUrl: String) {
u = mUrl
}
public func bannerView(nd: WKNavigationDelegate, ud: WKUIDelegate) -> WKWebView{
myWebView.uiDelegate = ud
myWebView.navigationDelegate = nd
let jscript = "var meta = document.createElement('meta'); meta.setAttribute('name', 'viewport'); meta.setAttribute('content', 'width=device-width'); document.getElementsByTagName('head')[0].appendChild(meta);"
let userScript = WKUserScript(source: jscript, injectionTime: .atDocumentEnd, forMainFrameOnly: true)
let wkUController = WKUserContentController()
wkUController.addUserScript(userScript)
let wkWebConfig = WKWebViewConfiguration()
wkWebConfig.userContentController = wkUController
wkWebConfig.preferences.javaScriptEnabled = true
wkWebConfig.preferences.javaScriptCanOpenWindowsAutomatically = true
myWebView = WKWebView(frame: CGRect(x: 0, y: 0, width: 320, height: 300), configuration: wkWebConfig)
let mmUrl = u
NSLog("URL:1 " + mmUrl, "")
if let myUrl = URL(string: mmUrl){
let myRequest = URLRequest(url: myUrl)
myWebView.load(myRequest)
myWebView.configuration.allowsInlineMediaPlayback = true
myWebView.configuration.allowsAirPlayForMediaPlayback = true
myWebView.configuration.allowsPictureInPictureMediaPlayback = true
myWebView.allowsLinkPreview = false
myWebView.allowsBackForwardNavigationGestures = true
}
return myWebView
}
func webView(_ webView: WKWebView, createWebViewWith configuration: WKWebViewConfiguration, for navigationAction: WKNavigationAction, windowFeatures: WKWindowFeatures) -> WKWebView? {
// A nil targetFrame means a new window (from Apple's doc)
NSLog("Test method call from another class", "")
if (navigationAction.targetFrame == nil) {
if #available(iOS 10.0, *) {
UIApplication.shared.open(navigationAction.request.url!, options: [:], completionHandler: nil)
} else {
UIApplication.shared.openURL(navigationAction.request.url!)
}
return nil
}
return nil;
}
}
我需要调用最后一个名为 webView 的函数。尽管我从 ViewController 类传递了 uiDelegate/navigationDelegate ,但当我按任何链接时它不会调用(可能是错误的实现,不清楚 uiDelegate 或 navigationDelegate)。我想在用户单击外部链接(例如 Play 商店链接或社交链接)时调用此函数,并在默认浏览器上打开该外部链接。
如果我将所有代码放在 ViewController 类上,它就可以正常工作。但我需要从另一个类调用,因为我想制作一个将返回 WKWebView 的框架。
最佳答案
您正在将 ViewController
分配为委托(delegate),并且您已在 AnotherClass
中实现了委托(delegate)。如果您想将委托(delegate)保留在 AnotherClass
public func bannerView(nd: WKNavigationDelegate, ud: WKUIDelegate) -> WKWebView{
myWebView.uiDelegate = self
myWebView.navigationDelegate = self
关于ios - 当按下带有 html 目标 ="_blank"的链接时,用于 navigationAction 函数的 WKWebView 不会从另一个 swift 类调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46198270/
target="_blank" 和 target=_blank 有区别吗? 似乎具有相同的行为,但只是想确定一个是否比另一个更好(以及为什么)。我一直使用引号,但在阅读 Rails 教程时发现 Mic
外部网站的链接是否应该设置 target=_blank?例如。我在 www.acme.net 上并且有一个指向 www.otherplace.net 的链接,该链接应该是: otherplace's
当我使用 target="_blank" 的常规链接时,我会打开一个新选项卡,但是当我使用 JS window.open(url, "_blank"); 我得到一个新窗口(我从 Response.Wr
在插入某些带有滚动条的 jQuery DIV 滚动条后,我花了 2 天的时间修复了故障 href="" 链接。 我在这些 DIV 中有 href="" 链接,单击它们但浏览器没有执行任何操作,无论它们
Drupal 中是否有任何模块可以为所有外部站点设置 target="_blank" 最佳答案 我认为这里有一个用 javascript 实现的模块:http://drupal.org/project
这个问题已经有答案了: How can I open a link in a new window? (10 个回答) 已关闭10 年前。 我已经根据其他 StackOverflow 问题/答案设置了
如何替换所有出现的 所以在这里我想将 target="_bank"添加到所有具有 ' http://localhost:4000/disease/description/ 的 anchor 标记。
我已经通过js添加了一个图像,但似乎不知道如何向该图像添加链接以及target="_blank"...这是我正在使用的代码: $(function() { $('body').delegate('
在你们的帮助下,我现在有了一个可以像魅力一样工作的脚本。我现在唯一需要的是在新选项卡/窗口中打开 URL 的脚本。 $(document).ready(function() { $("#ons
我使用链接标签将我的页面重定向到新选项卡中的另一个页面,但 target="_blank"不起作用! { e.preventDefault();
我在我的 asp 页面上添加了一个按钮,我正在服务器端执行一些过程,然后将链接重定向到另一个页面。 我在页面中所做的是在 asp:Button 上调用一个方法OnClientClick我分配 aspn
我正在尝试以全屏方式打开新页面。下面的尺寸是我的屏幕分辨率。我仍然必须单击浏览器上的可调整大小的按钮才能将其扩展到全屏。 如何在不单击重新调整大小的情况下打开它以填充屏幕? Helper.Redire
这个问题在这里已经有了答案: JavaScript: location.href to open in new window/tab? (7 个答案) How to add/update an at
我正在研究 jQuery,遇到了一个我似乎无法解决的问题。我知道使用 jQuery 是可能的,但找不到合适的示例来处理。我有一个页面,其中包含几个添加了属性/值 target="_blank" 的常规
页面有带超链接的图像,超链接有 target="_blank",每次我按该图像加载新的 firefox 并且该超链接被重定向到新的 firefox 网站 我失去了对该网页的所有控制权。可以删除或更改超
有些情况下我必须在新窗口/选项卡中打开链接。有没有一种对严格的 HTML 有效的方法?使用 jQuery 这样做是可以接受的,但我不想只是将 target="_blank" 偷偷带回 jQuery,这
target="_blank" 的最佳替代方案是什么? 这是我们使用的文档类型和 html 声明: 最佳答案 它只是按照 XHTML Transitional 有效。您可以继续使用它们。它仅根据
什么时候适合在超链接上使用 target="_blank" 属性? 编辑: 澄清一下,我知道语法会打开一个新的浏览器窗口。我想问的是什么时候这样做合适? 最佳答案 每当您想惹恼用户时。 更严重的是,因
我正在 Android Studio 中构建一个在 WebView 中显示页面的应用程序,但我似乎无法让 WebView 在同一个 WebView 中打开带有 target='_blank' 的页面。
It's valid in XHTML 1.1和WCAG 2.0准则没有有关其用法的任何信息? 我知道在严格的XHTML 1.0中这是无效的,但是如果很多人都在使用其他功能,例如JavaScript,
我是一名优秀的程序员,十分优秀!