我一直在尝试将WKWebView集成为UIViewController中另一个webview的子视图.我已经能够加载内容并与swift和javascript正确通信.但是,没有任何数据操作的HTML内容的加载时间大约需要2秒.
我还测试了加载WKWebView只是一个空的HTML体,没有任何脚本加载.这仍然需要600毫秒才能加载.
viewDidLoad和webView(webView:WKWebView,didFinishNavigation导航:WKNavigation!)之间的差异时间是600毫秒,即使HTML包含空体.
ViewController的viewDidLoad函数
override func viewDidLoad() {
NSLog("started - %@.%@", String(self.dynamicType), __FUNCTION__)
super.viewDidLoad()
let wkConfiguration: WKWebViewConfiguration = WKWebViewConfiguration()
let userController: WKUserContentController = WKUserContentController()
wkConfiguration.userContentController = userController
wkConfiguration.processPool = VCWKWebView.wkProcess
self.wkWebView = VCWKWebView(frame: self.webView.bounds,configuration: wkConfiguration)
if let wkWebView = self.wkWebView {
self.webView.addSubview(wkWebView)
wkWebView.translatesAutoresizingMaskIntoConstraints = false
let height = NSLayoutConstraint(item: wkWebView, attribute: .Height, relatedBy: .Equal, toItem: self.webView, attribute: .Height, multiplier: 1, constant: 0)
let width = NSLayoutConstraint(item: wkWebView, attribute: .Width, relatedBy: .Equal, toItem: self.webView, attribute: .Width, multiplier: 1, …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用WKWebView实现嵌入式webView.我有初始配置,并且使用以下代码我可以将网页加载到我的故事板中.
import UIKit
import WebKit
class WebViewViewController: UIViewController {
@IBOutlet var containerView: UIView!
var webView: WKWebView?
override func loadView() {
super.loadView()
self.webView = WKWebView()
self.view = self.webView!
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
var url = NSURL(string:"http://www.google.com/")
var req = NSURLRequest(URL:url!)
self.webView!.loadRequest(req)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
/*
// MARK: - Navigation
// In a storyboard-based application, you will often …Run Code Online (Sandbox Code Playgroud) 我是Swift和iOS编程的新手,我在Swift中遇到了一个关于带有占位符和多元支持的动态字符串的问题
例如,如果您有一个多语言应用程序,并且不想硬编码字符串和标签和消息等...
我可以在Android中轻松地使用以下代码在不同文件夹中的XML文件中执行此操作,其中android设备将根据当前区域设置查找字符串:
<string name="name">You have %2$d new messages.</string>
<plurals name="name">
<item quantity="one">You have a new message.</item>
<item quantity="other">You have %2$d new messages.</item>
</plurals>
Run Code Online (Sandbox Code Playgroud)
借助上述XML和以下Java:
res.getString(R.string.name, mailCount)
res.getQuantityString(R.plurals.name, mailCount, mailCount)
Run Code Online (Sandbox Code Playgroud)
这项工作是在Android中完成的,我正在寻找与Swift(iOS)相对应的解决方案
我最近被迫更新到Swift 3.0,看起来Xcode的转换并没有做得很好.幸运的是,我能够手动解决大部分问题,但是,让我有点困惑.
canBecomeFirstResponder在升级到Swift 3.0之前,这行覆盖了uiController中的方法:
override func canBecomeFirstResponder() -> Bool {
return true
}
Run Code Online (Sandbox Code Playgroud)
但是,它现在返回错误:
方法不会覆盖其超类中的任何方法.
但是,删除该override位似乎并没有解决它,因为它引发了一个似乎与前一个相矛盾的不同错误:
具有Objective-C选择器'canBecomeFirstResponder'的方法'canBecomeFirstResponder()'与来自超类'UIResponder'的'canBecomeFirstResponder'的getter冲突,具有相同的Objective-C选择器
实际上有覆盖发生吗?为什么Xcode会在这里给我发送混合信息?
作为参考,我已经看过这个问题,虽然它非常相似,但它是关于一个类,这是关于一个方法.为了安全起见,我确实尝试使用该问题的解决方案,它进一步破坏了事情并引发了同样的错误.
我正在尝试为我的iOS WKWebView应用程序创建一个后退按钮,这样当用户点击按钮时它会将它们带到之前的WKWebView页面.我已经找到了很多关于如何使用IB而不是直接代码的教程.这是我到目前为止:
原始ViewController.swift:
import UIKit
import WebKit
class ViewController: UIViewController, WKNavigationDelegate {
private var webView: WKWebView!
let wv = WKWebView(frame: UIScreen.mainScreen().bounds) //needed for working webview
self.webView = WKWebView(frame: frame)
self.webView.navigationDelegate = self
func rightbutton(text: String, action: Selector) {
let rightButton = UIBarButtonItem(title: text, style: .Plain, target: self, action: action)
self.navigationItem.rightBarButtonItem = rightButton
}
func action() {
if self.webView.canGoBack {
print ("Can go back")
self.webView.goBack()
self.webView.reload()
} else {
print ( "Can't go back")
}
}
override func viewDidLoad() {
super.viewDidLoad() …Run Code Online (Sandbox Code Playgroud) 我有一张表,其中一列是电子邮件地址.我需要添加一个指向此电子邮件地址的超链接,以便单击它可以在TO:字段中打开带有电子邮件地址的Outlook .
有人可以帮忙吗?
我正在使用 Vimeo 播放器的 JavaScript API 在用户单击网站上的特定按钮时启动视频。
\n\n这是嵌入的代码:
\n\n<iframe id="vimeo-player" src="<?php the_sub_field(\'slide_video\'); ?>?title=0&byline=0&portrait=0" width="1880" height="1058" frameborder="0" ></iframe>\nRun Code Online (Sandbox Code Playgroud)\n\n这是 JavaScript:
\n\n var iframe = document.querySelector(\'#vimeo-player\');\n var player = new Vimeo.Player(iframe);\n\n $(\'.slide-area__slides__video svg\').click(function(){\n $(this).hide();\n $(this).closest(\'.item\').find(\'img\').hide();\n $(this).siblings(\'iframe\').show();\n player.play();\n });\n\n player.on(\'ended\', function(data) {\n $(\'.slide-area__slides__video svg\').show();\n $(\'.slide-area__slides__video iframe\').hide();\n $(\'.slider-area__slides .item img\').show();\n });\nRun Code Online (Sandbox Code Playgroud)\n\n它在 Chrome 中完美运行,但在其他所有浏览器中,它只是不断抛出错误:
\n\n\n\n\n传递的播放器元素是\xe2\x80\x99t Vimeo 嵌入。
\n
以前有人遇到过这种情况吗?这真是令人沮丧。
\n我正在使用带有函数的复选框data-bind,但我无法check复选框.
视图:
<input type="checkbox" data-bind="click: function(){ f('hello parameter'); }">Click me
Run Code Online (Sandbox Code Playgroud)
查看型号:
var VM = function () {
this.f = function (param) {
alert(param); // here i am getting 'hello parameter'
return true;
}
}
ko.applyBindings(new VM());
Run Code Online (Sandbox Code Playgroud)
这是我的小提琴
我有一个本地段控件,它在WKWebView中加载预定的 URL 。我想要实现的是WKWebView加载之间清除(空白)。
所以就在我发出真正的请求之前,我尝试加载:
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"about:blank"]];
[wkWebView loadRequest:request];
Run Code Online (Sandbox Code Playgroud)
我什至尝试加载一些空的 HTML 无济于事:
[wkWebView loadHTMLString:@"<html><body></body></html>" baseURL:[NSURL URLWithString:@"about:blank"]];
Run Code Online (Sandbox Code Playgroud)
这确实适用于UIWebView。关于这个有什么提示吗?
我正在做一个项目,我需要将qemu-guest物理地址转换为主机虚拟/物理地址。
我正在使用 VMI(虚拟机自省)来自省 qemu 进程(KVM VM)并读取存储在 virtio 环形缓冲区描述符中的来宾物理地址。因此,我正在寻找一种简单的方法将 qemu 物理地址转换为主机端的主机虚拟地址。(即,从 qemu 进程中提取尽可能少的信息)。
我在网上看到,在以前的版本中,qemu 将物理 RAM 基址存储在变量 中phys_ram_base,因此可以通过以下方式获取主机虚拟地址:
host_virtual = phys_ram_base + guest_physical_address
Run Code Online (Sandbox Code Playgroud)
在较新版本的 qemu 中是否可能出现这样的情况(例如,我如何获得 qemu 物理基地址——前者phys_ram_base?)
ios ×5
wkwebview ×4
javascript ×2
swift ×2
asp.net-mvc ×1
checkbox ×1
ios9 ×1
jquery ×1
knockout.js ×1
kvm ×1
objective-c ×1
qemu ×1
swift2 ×1
swift3 ×1
uibutton ×1
xcode8 ×1