iOS 14 API WKScriptMessageHandlerWithReply是如何从iOS与JavaScript进行通信的?
ios 14引入了一种接收JavaScript调用的新方法,并使用WKScriptMessageHandlerWithReply而不是WKScriptMessageHandler(WebKit View)提供了响应.但是,该文档基本上不存在.这是如何工作的? 解决方案 我有点挖掘出来,发现它使用JavaScript承诺提供回调机制(以及App Code回到JavaScript的响应必须为异步). 这是一些示例代码: Swift代码: import UIKit import WebKit import PureLayout final class ViewController: UIViewController { var webView : WKWebView? let JavaScriptAPIObjectName = "namespaceWithinTheInjectedJSCode" override func vie
0 2023-06-02
编程技术问答社区
我可以在我的iOS应用中使用实验性的WebKit功能吗?
我正在开发带有反应的iOS应用程序.我想使用仍处于"实验"阶段的Mediarecorder.我在高级Safari设置中打开它,但是当我尝试在应用中使用它时: var mediaRecorder = new MediaRecorder(stream) 我得到此错误: ReferenceError: Can't find variable: MediaRecorder 此功能在Safari中效果很好,但是我无法在我的应用中使用它.有没有办法在XCode/Real-Nement Andings中打开它? 编辑: 这是我代码的较大部分.我使用 react-native-webrtc 提供了mediaDevices组件.我确实捕获了流,我遇到的问题是Mediarecorder.我知道Mediarecorder在Safari浏览器中工作,我遇到的问题是,它是否可以在移动iOS应用中使用,如果是,则如何启用它. import { RTCPeerConnecti
8 2023-06-02
编程技术问答社区
WKWebView在swift 4 xcode 10中没有被初始化。
任何人都可以帮助我理解为什么我的网络浏览量在这里没有初始化.我遇到以下错误,因为网络浏览量为nil. Fatal error: Unexpectedly found nil while unwrapping an Optional value 我到底在这里缺少什么? import UIKit import WebKit class MemoriesViewController: UIViewController, WKNavigationDelegate { @IBOutlet weak var webView: WKWebView! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. } override func viewDidAppear(_
8 2023-06-02
编程技术问答社区
在iOS上禁用全屏的自动播放功能
我遇到的唯一问题是,我无法根据Apple文档在全屏上禁用播放视频,默认情况下启用了,需要设置如下: webView.configuration.allowsInlineMediaPlayback = true 这是基于我的理解.但是,这种情况不起作用,即使在您在视频上进行播放后立即进行配置后,它将在本机全屏播放器中打开.我正在使用wkwebview. 解决方案 播放视频内联需要两个先决条件: 设置配置 提供正确格式的链接 1.设置配置 在初始化时,必须设置WKWebView的配置.修改allowsInlineMediaPlayback在以后的点不起作用: let configuration = WKWebViewConfiguration() configuration.allowsInlineMediaPlayback = true let webView = WKWebView(frame: CGRect(x: 0, y: 0, widt
12 2023-06-02
编程技术问答社区
iOS5 -webkit-overflow-scrolling导致触摸事件停止工作
使用[ -webkit-overflow-scrolling:touch ;],滚动区域的确可以正常工作, 但这导致触摸事件阻止了滚动区域的工作. 有人有同样的问题吗?谁能给我一些有关此新滚动功能的官方链接? ios5 scroll header { background: red; width: 300px; height:44px; } .scroll { width: 300px; height:300px; background: yellow; overflow: scroll; -we
0 2023-06-02
编程技术问答社区
如何在UIWebView中从Javascript调用一个Objective-C方法?
我正在使用PhoneGap开发本机iPhone应用程序,因此所有内容都在HTML和JS中完成.我正在使用Flurry SDK进行分析,并想使用 [FlurryAPI logEvent:@"EVENT_NAME"]; 跟踪事件的方法.有没有办法在JavaScript中执行此操作?因此,在跟踪链接时,我会想象使用 之类的东西 Rainbows Unicorns " flurryapi.h"具有以下内容: @interface FlurryAPI : NSObject { } + (void)startSession:(NSString *)apiKey; + (void)logEvent:(NS
0 2023-05-25
编程技术问答社区
删除MacPorts后,new Date("YYYY-MM-DD")在Qt WebKit中停止工作。
在我的OS X 10.7.3(狮子)笔记本电脑上,我无法使用日期构造函数用QT WebKit解析JavaScript日期字符串.使用Jasmine-Headless-Webkit或Phantomjs,所有调用都如下: new Date("2012-04-10") 总是返回 "Invalid Date" 而不是有效的日期对象.几周前,一切都很好,我已经用类似设置的六台计算机对此进行了检查,并且无法在其他任何地方重现问题. 我可以肯定的是,当我决定清理我的旧据说的Macports安装时,问题就开始了(我已经切换到自制并进行了一些房屋清洁了).我怀疑有一个动态链接的库已从我的系统中删除,QT用于日期解析. 有人知道这个日期可以叫什么日期?是否知道我是否可以使用自制型或以某种方式手动修复缺失的依赖性? 我尝试重新安装QT和许多其他库,但没有解决问题. 解决方案 我没有Mac,但是给出了Windows的情况,我将使用一个可以报告应用程序依赖项等信息之类
0 2023-05-25
编程技术问答社区
casper.js中的setting和this.wait
我需要在每次迭代之间进行 3次和2秒的循环.我尝试了这3个选项: 选项1 var casper = require('casper').create({ verbose: false, logLevel: 'debug' }); casper.start("http://google.com"); casper.on('remote.message', function(msg) { this.echo('remote message caught: ' + msg); }) casper.thenEvaluate(function() { var x = 0; var intervalID = setInterval(function () { console.log("Using setInternal " + x); if (++x === 3) { window.cle
0 2023-05-25
编程技术问答社区
如何捕获由PhantomJS获取的页面中生成的JavaScript错误?
我有一个phantomjs脚本,该脚本加载了本地HTML文件,注入一些JavaScript文件,然后在页面上下文中执行一些JavaScript.运行的JavaScript会生成异常,但是我只从控制台中获得输出,该输出似乎没有区分错误和正常日志,并且没有文件,行号或stacktrace. 我需要的是一种捕获或以其他方式区分这些错误的方法.我已经尝试过: 将我的phantomjs脚本包装在一个try-catch中 结果:没有足够的抛出来被这个 抓住 定义A window.onerror功能 结果:什么也没有发生. WebKit不会在窗口上实现OnError事件 我希望能够检索错误对象本身,以便我可以检索stacktrace. 解决方案 我认为window.onerror在Webkit(https://bugs.webkit.org/show_bug.cgi?id=8519)中没有适当工作的问题.不知道这是否已经修复了,如果是这样,QT WebKit版本是
0 2023-05-25
编程技术问答社区
如何减少phantomjs的内存消耗?
我正在使用带有casperjs的phantomjs来运行多个测试,看来phantomjs的每个实例都需要约106m的RAM.有可能减少该数量吗?是否有一种简单的方法可以在多个"选项卡"中运行测试? 解决方案 编辑:,如@newfurniturey指向,版本现在已弃用.我们必须使用 close : 不知道这是否有帮助,但是发布功能可能是一个很好的尾巴: http://phantomjs.org/phantomjs.org/api/webpage/webpage/webpage/webpage/method/method/release.html-1.htmltm-1/a-.a.a realease.htmltmtmfultmfultmfulfut/a > 释放与此页面关联的内存堆.不要使用页面 呼叫此后的实例. 由于某些技术限制,网页对象可能不是 完全收集了垃圾.当相同时,这通常是遇到的 对象一遍又一遍地使用. 调用此功能可能会停止增加的堆分配. :)
2 2023-05-25
编程技术问答社区
在基于WebKit的浏览器上给HTML文档分页以便打印
Internet Explorer具有 WebKit是否提供了类似的功能?特别是,Phantomjs会这样做吗?我正在寻找任何可以允许没有预定义的页面断开的现有HTML文档的东西,并将其视为新的转换的HTML或PDF文档,而中间没有线路. 解决方案 浏览器引擎应照顾一切,您可以使用media="print"的样式表进行帮助. 例如,强制页面断裂,以使第1级或2级( 或 )的每个标题都放在新页面的开头. org/en-us/docs/web/css/pag-break-befor" rel =" noreferrer"> page-break-before : h1, h2 { page-break-before:always; } 在Chrome中,即您可以控制 widows and orphans 所以现在您可以使用 p { page-break-inside: avoid; } 避免段落中的页面中断. 您甚至可以控制首先,左和左页分
2 2023-05-25
编程技术问答社区
如何在Ubuntu上获得P5-SWITCH 12.10
我正在使用Ubuntu 12.04,直到释放12.10.我使用Ubuntu进行软件开发,并在安装12.10后,我注意到使用12.10运送的Perl版本(5.14)不包括构建WebKit-gtk时需要的switch.pm模块. 在互联网上环顾四周,我发现很少有建议,表明我应该从称为端口的东西安装一些呼叫p5-switch.我环顾四周,无法完成此操作.我不是一个佩尔的家伙,也不知道我可以从哪里得到这个包. 有人可以帮我吗 1.在哪里下载ubuntu的包裹12.10 2.如果它不是.deb,我该如何安装. 或者 1.至少能够将Perl安装降级到低于5.14 的事物 谢谢,问候 〜Sameer 解决方案 sudo apt-get install libswitch-perl 将为您安装. "端口"是一种 *BSD包装系统,而不是您应该寻找的. 您可以通过转到packages.ubuntu.com,在"搜索软件包的内容" conse"" formage and
8 2023-05-25
编程技术问答社区
滚动滚动 +滚动滚动和鼠标/触摸板滚动之间的差异时,DOM元素位置缓慢 +
我在Safari上遇到了一个小问题 - 当我想更新DOM元素在滚动事件上的位置时,Safari似乎没有赶上更改(导致跳跃滞后效应). 我在其他浏览器(Chrome,ff,IE8+)上检查了它,这似乎是Safari的特定. 我做了一个jsfiddle来说明我的问题: $("#container").on("scroll", function() { $("#slide").css({ left: $("#container").scrollLeft() + "px" }); var leftPos = 0; for(var i = 0; i
0 2023-05-24
编程技术问答社区
如何提高UIWebView的滚动性能?
我正在构建一个应用程序,其中包括UIWebView包含大量图像,CSS,嵌入式视频和JavaScript Tap Handlers.滚动性能很结实,我正在寻找对改善这种情况的最有效方法的见解. 如果以下任何特征导致laggy UIWebView滚动?其他哪些因素可能会阻碍性能? 图像数量 当用户滚动滚动时,我是否应该从DOM中删除图像,并在滚动滚动时添加回去? 图像的大小 网络视图中的视网膜质量图像会影响滚动性能比较小的版本要多得多? 图像缩放 提前调整图像的大小会产生很大的不同,而不是依靠网络视图来根据width: 100%;>? 等声明进行扩展. CSS 我已经避免了box-shadow,但是还有其他CSS属性也因不利影响滚动性能而闻名吗? 如果还有其他资源或工具可以用于分析,我很喜欢听到它们. 解决方案 这是我不久前从Apple开发人员获得的答案: 目前,我们没有提供任何机制来优化UIWebView的渲染. 您看到差异的原
0 2023-05-23
编程技术问答社区
背景|尺寸:覆盖性能问题
我使用background-size: cover的大量元素遇到了性能问题(尤其是在Safari中).我添加了transform: translate3d(0,0,0)确实有所帮助,但没有我想要的那么多.如果可能的话,我真的在寻找纯CSS修复. 解决方案 jsFiddle Demo jsFiddle Demo /strong> background-size:cover全面表现出色.我以前发现了许多使用它的问题,并且已经放弃了这种方法. 使用DIV内部的图像,将DIV大小到您希望使用的尺寸.将图像大小如此: left:0; right:0; top:0; bottom:0; position:relative; width:100%; height:100%; 并将图像的URL直接分配到src="url". 即使在此剧烈的测试中,您也可以看到它的确可以很好(即使在Safari中进行了测试 - 用于演示中的简洁性的jQuery) var place
0 2023-05-23
编程技术问答社区
JavaScript的及时性汇编
我为设备的HTML页面有一个很大的JavaScript. 但是有点慢.我尝试压缩JavaScript文件,但仍然不满意. 所以我在想,是否可以将其作为及时将其编译为机器代码并使用它? (希望我的理解是正确的)我使用基于WebKit的浏览器. 任何这样做的人,请提供有关"如何"页面或信息的链接. 解决方案 Safari和Chrome都已经对JavaScript进行了JIT汇编.实际上,广泛使用中唯一的浏览器是IE8及更早的浏览器.这是IE8的主要原因之一,这些天比比赛慢得多. 但是在问题之间阅读,我的猜测是您不太了解什么是JIT汇编. JIT汇编发生在浏览器上;您无需以任何方式更改代码,以便浏览器能够为您进行jit编译. 听起来您实际在想的是字节码编译,例如Java.该字节码有效地是一种中途编译的语言,然后在您运行程序时将其本身汇编.如果这是您的想法,我可以确认这不是基于浏览器的JavaScript代码的选择. Google一直在玩"本地客户端"
0 2023-05-23
编程技术问答社区
webkit中古怪的百分比解释
从事响应式设计,逐渐失去头发和睡眠.这似乎是一个真正的webkit错误: http://jsfiddle.net/tavec/ 那里的问题很清楚 - WebKit将20%的填充物解释为父母内容框的20%,而Firefox和Opera将其解释为父母总框的20%(包括父母的填充). . 有什么想法在保留绝对定位的同时如何工作? 解决方案 您可以将的内容包裹在div中,并将填充物分配给它,而不是.这样,您可以确保FF和Chrome中的填充(尚未测试O或IE)相对于容器,即. . Parent Content... Aside child The prime minister also
0 2023-05-23
编程技术问答社区
Chrome浏览器是如何将HTML中的PDF呈现得如此出色的?
我希望模仿HTML中的乳胶的某些功能,并渲染到PDF.到目前为止,我使用Chrome的"保存到PDF"打印功能非常接近. 我已经尝试了 wkhtmltopdf (不太好), phantomjs (确定),野生动物园(非常好)和Firefox(几乎在那里),但没有一个接近Chrome的质量. 即使大多数选项都在webkit上运行,例如,也有很多细节才能正确.字体渲染软hyphens,使用MathJax的数学符号以及指定页面选项(例如A4和Rigless等). 什么是Chrome的"秘密酱",我该如何掌握此过程? 非常感谢! 解决方案 这里找到了一个相当全面的答案 pdfium是Chrome中使用的PDF 观看器. 打印组件是眨眼和Skia的组合. 其他解决方案 来自源代码,看起来他们正在使用 pdfium a href =" http://blog.foxitsoftware.com/foxit-pdf-technology-chosen-fo
0 2023-05-22
编程技术问答社区
安卓2.2和2.3版通过HTTPS下载PDF似乎已经坏了
我一直在下载PDF下载到移动设备上.这是在Android 2.2和2.3上观察到的下一个疯狂.我无法在iPhone或其他设备上重现此问题,既没有在Firefox或其他桌面浏览器上. 我正在通过HTTP下载PDF,而且工作正常.然后,我正在通过HTTPS下载相同的PDF,并且下载未完成(并且文件名丢失): 我正在使用这些HTTP标头(以及其他在这里无关的): Content-Disposition: attachment; filename="abc.pdf" Content-Type: application/pdf 将Content-Disposition更改为inline或完全将其删除也无济于事.删除Content-Type将导致在浏览器窗口中显示原始二进制数据. 注意:我已经发现与不信任的SSL证书有关的问题,但这似乎不是唯一的问题.所以我真的在寻找另一个解释. 欢迎任何想法! 解决方案 一如既往,经过一些努力的看法,在Google代码上有
0 2023-05-22
编程技术问答社区