小编Vem*_*nus的帖子

使用swift,WKWebView在iOS9中加载HTML内容的速度太慢

我一直在尝试将WKWebView集成为UIViewController中另一个webview的子视图.我已经能够加载内容并与swift和javascript正确通信.但是,没有任何数据操作的HTML内容的加载时间大约需要2秒.

我还测试了加载WKWebView只是一个空的HTML体,没有任何脚本加载.这仍然需要600毫秒才能加载.

viewDidLoadwebView(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)

javascript ios wkwebview ios9 swift2

10
推荐指数
1
解决办法
2062
查看次数

如何向WKWebView添加导航栏?

我正在尝试使用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)

navigationbar swift wkwebview

9
推荐指数
2
解决办法
2万
查看次数

Swift(iOS)中带占位符和多个支持的动态字符串

我是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)相对应的解决方案

ios swift

9
推荐指数
2
解决办法
5120
查看次数

这是否重写方法?

我最近被迫更新到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 swift3 xcode8

9
推荐指数
1
解决办法
3363
查看次数

iOS - 如何以编程方式创建WKWebView Back Button?

我正在尝试为我的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)

uibutton ios wkwebview

8
推荐指数
1
解决办法
1万
查看次数

如何在点击电子邮件超链接时打开Outlook

我有一张表,其中一列是电子邮件地址.我需要添加一个指向此电子邮件地址的超链接,以便单击它可以在TO:字段中打开带有电子邮件地址的Outlook .

有人可以帮忙吗?

asp.net-mvc

6
推荐指数
1
解决办法
2万
查看次数

传递的播放器元素不是 Vimeo 嵌入。玩家JS

我正在使用 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>\n
Run 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    });\n
Run Code Online (Sandbox Code Playgroud)\n\n

它在 Chrome 中完美运行,但在其他所有浏览器中,它只是不断抛出错误:

\n\n
\n

传递的播放器元素是\xe2\x80\x99t Vimeo 嵌入。

\n
\n\n

以前有人遇到过这种情况吗?这真是令人沮丧。

\n

javascript jquery

6
推荐指数
1
解决办法
7696
查看次数

CheckBox未在Knockoutjs中检查

我正在使用带有函数的复选框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)

这是我的小提琴

checkbox knockout.js

5
推荐指数
2
解决办法
4233
查看次数

在请求之间清除 WkWebview

我有一个本地段控件,它在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。关于这个有什么提示吗?

objective-c ios wkwebview

5
推荐指数
1
解决办法
1554
查看次数

Qemu-KVM:来宾物理地址到主机虚拟/主机物理地址的转换

我正在做一个项目,我需要将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?)

kvm qemu

5
推荐指数
1
解决办法
950
查看次数