Tag: JavaScript

了解YouTubevideo何时从UIWebView中开始播放

我制作了一个播放YouTubevideo的课程(感谢本网站的善意帮助)。 现在我想知道我是如何知道YouTubevideo何时开始播放的。 我想知道这一点,所以我可以在播放的video和实际播放的video之间显示“请等待,正在加载…”指示。 我使用stringByEvaluatingJavaScriptFromString:开始播放video,当然我在启动javascript命令以播放video和video实际播放之间有一点延迟。 我熟悉YouTubevideo和javascript,所以我一直在看这个:[ https://developer.apple.com/library/mac/documentation/AppleApplications/Conceptual/SafariJSProgTopics/Tasks/ObjCFromJavaScript.html ]因为我想知道是否UIWebView中的javascript事件侦听器可以检测YouTubevideo何时开始播放(侦听onStateChange事件)并触发Objective C方法。 这可能吗? UIWebViews以与Web浏览器相同的方式运行javascript吗? 这样做有更简单/更好的方法吗? 这是我的youtube类: // this is the only property declared in the .h file: @property (strong, nonatomic) UIView * view // the rest of this is the .m file: #import “MyYouTube.h” @interface MyYouTube() @property (strong, nonatomic) NSDictionary * contentData; @property (strong, nonatomic) UIWebView * webView; @property […]

如何使用棘轮启用push.js ajax内容加载器

我试图从棘轮实现push.js引擎: http://maker.github.com/ratchet/#push 我从这里下载了棘轮文件: http://maker.github.com/ratchet/ratchet.zip 并使用apache来提供所有js,css和html。 所有文件都在同一目录中。 这是我的https://stackoverflow.com/questions/14573215/how-to-enable-push-js-ajax-content-loader-with-ratchet/one.html文件: Ratchet template page <!– Make sure all your bars are the first things in your –> https://stackoverflow.com/questions/14573215/how-to-enable-push-js-ajax-content-loader-with-ratchet/one.html two 这是我的https://stackoverflow.com/questions/14573215/how-to-enable-push-js-ajax-content-loader-with-ratchet/two.html文件: Ratchet template page <!– Make sure all your bars are the first things in your –> https://stackoverflow.com/questions/14573215/how-to-enable-push-js-ajax-content-loader-with-ratchet/two.html one 我如何将这两个文件链接在一起? 看起来像push.js,但是当我点击一个href时什么也没做。 我觉得我错过了一些关于这个实现的明显的东西。 谢谢您的帮助。

如何从其他应用程序将图像共享到我的Cordova / PhoneGap应用程序?

我有一个处理照片的Cordova / PhoneGap应用程序。 我想要的是让我的应用程序出现在共享选项中,当其他应用程序想要将照片分享给其他应用程序时。 以下是此类共享对话框的示例: 如何才能使我的Cordova / PhoneGap应用程序出现在其他应用程序的照片共享选项中? 编辑:当我点击一些照片应用程序中的分享到Instagram时,我得到以下弹出窗口。 如何让我的应用程序确实出现在此共享弹出窗口中?

使用Node.jsvalidationiOS收据

经过几天的努力试图让某些东西起作用并且没有在哪里,我想知道是否有人在Node.js上使用iOS Receipt Validation。 我已经尝试过在这里找到的节点模块iap_verifier ,但我无法让它为我正常工作。 我从Apples服务器收到的唯一回复是21002,数据格式不正确。 对我有用的一件事是苹果服务器的客户端validation请求,我直接从Apple提供的教程中获得,代码如下所示。 // The transaction looks ok, so start the verify process. // Encode the receiptData for the itms receipt verification POST request. NSString *jsonObjectString = [self encodeBase64:(uint8_t *)transaction.transactionReceipt.bytes length:transaction.transactionReceipt.length]; // Create the POST request payload. NSString *payload = [NSString stringWithFormat:@”{\”receipt-data\” : \”%@\”, \”password\” : \”%@\”}”, jsonObjectString, ITC_CONTENT_PROVIDER_SHARED_SECRET]; NSData *payloadData […]

wkWebView无法播放本地音频

自iOS9发布以来,我们可以使用loadFileURL:allowingReadAccessToURL: wkWebView使用wkWebView呈现本地HTML loadFileURL:allowingReadAccessToURL: 到目前为止这看起来不错,但我们在HTML中播放本地mp3时遇到问题。 有一个带有src属性的标签,其中包含mp3文件的相对路径。 iOS9-Simulator正确播放我们的mp3,但物理设备没有。 使用JavaScript捕获错误会显示networkState NETWORK_NO_SOURCE ,这对我们没有意义…使用http URL作为src并从网络流式传输mp3工作正常。 有没有人设法用wkWebView播放本地音频文件?

在JavaScript中生成(非UDID)标识符以唯一标识iOS设备

由于Mobile Safari无法访问iOS设备的UDID,因此我正在寻找一种方法,仅使用JavaScript为iOS设备生成不同(但仍然唯一)的标识符。 更广泛的问题是: “Mobile Safari上的JavaScript可以访问哪些系统信息,可用于生成唯一标识符?” 这需要是不需要用户权限(即警报)才能访问的信息。 用例是跟踪来自CPC发布商的转化,其中广告客户仅限于提供url作为广告的目标网页,发布商不会将UDID附加到url。

UIWebView中的iOS loadHtmlString不适用于Javascript

我有一个iOS应用程序来加载一个html字符串,它引用同一目录中的外部css文件和javascript文件。 这是我的html文件: css文件工作正常,但似乎js文件从未加载。 可能是什么原因? 顺便说一句,我使用loadHtmlString:BaseUrl方法来加载我的html字符串。 谢谢

从iOS UIAutomation发出JavaScript中的同步HTTP GET请求或调用shell脚本

我正在尝试使用Apple的UIAutomation为具有服务器端组件的iOS应用程序编写unit testing。 为了在各种状态下设置测试服务器(以及模拟通过我的服务器进行通信的两个客户端),我想在基于javascript的测试中发出HTTP get请求。 任何人都可以提供一个示例,说明如何直接从UIAutomation javascript测试中发出HTTP GET请求,或者如何从我的UIAutomation javascript测试中调用shell脚本? FWIW,UIAutomation运行时中缺少所有浏览器提供的大多数核心对象。 例如,尝试使用XMLHTTPRequest,您将收到一个exception报告,它无法找到该变量。 谢谢!

在iOS电子书阅读器中使用execCommand突出显示HTML的任何替代方法

我正在使用UIWebView开发iOS图书阅读器。 目前我正在处理一些基本的HTML文件,但最终将与ePubs一起使用。 我正在寻找一种合适的文本范围样式。 我的范围有点特别,因为它们通常包含三个范围 – 一个键范围和一个范围,紧接在之前和范围之后。 键范围可以跨越多个节点,并且可以例如在粗体文本等的选择内开始或结束。不应将样式写入文件。 目前我有一个工作解决方案如下: document.designMode = “on”; // Color the first section var selection = window.getSelection(); selection.removeAllRanges(); selection.addRange(range1); if (!selection.isCollapsed){ document.execCommand(“foreColor”, false, color1); } // Color the middle section selection.removeAllRanges(); selection.addRange(range2); if (!selection.isCollapsed){ document.execCommand(“backColor”, false, color2); document.execCommand(“foreColor”, false, color3); } // Color the last section selection.removeAllRanges(); selection.addRange(range3); if (!selection.isCollapsed){ document.execCommand(“foreColor”, false, […]

Cordova外部应用+本地video

我们有一个使用PhoneGap / Cordova 4.3.0构建的iOS应用程序。 此应用程序使用config.xml文件中的直接加载外部网站。 所有function都包含在本网站中,因此我们实际上并没有使用任何本地HTML或JS文件。 作为应用function的一部分,我们必须播放一些video。 由于该应用程序也设计为脱机工作,因此我们希望在本地缓存这些video。 因此,我们使用FileTransfer插件将其下载到设备,以及其他资源,如图像或PDF。 下载文件后,我们将获得带有file:// protocol的URL。 我们还可以选择使用cdvfile://协议。 当我们使用cdvfile:// URL来显示图像时,图像会正确显示。 但是,video根本不播放。 要播放video,我们使用标准HTML5video标记: video本身正在工作,它们将从外部源正确播放(如果我们从服务器而不是本地文件系统访问它们,它们将播放)。 我意识到问题与Web相关的概念有关,例如同源策略和访问本地文件系统的限制。 然而,与此同时,我必须想知道为什么图像在这些相同的约束条件下正常工作。 到目前为止我尝试了什么: 使用file://和cdvfile:// URL作为video的src 。 这不会产生任何视觉效果。 屏幕简直是黑色。 使用iframe并将src设置为videoURL。 使用file:// ,屏幕仍为黑色。 但是,当使用cdvfile:// ,会出现iOSvideo播放器界面,带有播放按钮和全屏按钮,但video无法播放,也没有时间轴。 将一个名为video.html的本地文件添加到cordova中,该文件将URL作为参数,并将带有该URL的video标记呈现为src 。 计划是将此文件包含为iframe ,但显然我无法为本地文件创建iframe 。 我尝试过各种可能指向特定video.html文件的URL(虽然实际上我不确定这是否可行)。 我试过的是: cordova.file.applicationDirectory + ‘www/video.html’ , http://localhost/www/video.html cdvfile://localhost/www/video.html 。 我找了一些可以播放video的cordova插件,但是我找不到适合iOS的插件。 大多数插件似乎都针对Android。 现在,我可能会以错误的方式解决这个问题。 正如我所看到的,cordova的“标准用例”是您在本地存储HTML / JS / CSS文件。 像我正在使用的外部内容可能有点不寻常。 我将解释这个应用程序的要求,它使我使用此function。 该应用程序应该是为多个平台构建的(虽然我们从iOS开始)。 […]