Safari正面有任何正式公告吗?
在获取Silverlight的网页现在显示2016年12月31日作为为Silverlight在Safari支持的终止.这似乎是未经宣布的新闻,目前还不清楚它是由Apple还是微软设定的.该日期与Firefox对NPAPI的支持结束相匹配.
问题1: Silverlight应用程序可以继续作为Mac上的OOB应用程序继续可行(并且可安装)吗?或者,不可避免地丢失broswer NPAPI支持意味着Silverlight在Mac上的完整终端?这里的帖子似乎提供了一些希望,但它已经很老了.
Q2:任何人都可以指出该Safari结束支持日期的来源/公告吗?
我需要编写一个浏览器插件来与另一个进程通信,似乎我必须使用NPAPI插件.有没有我可以参考的示例或开源NPAPI插件?
非常感谢你的回复.
答案摘要
2和3都是使插件开发更容易的框架.
我在http://mxr.mozilla.org/seamonkey/source/modules/plugin/samples/找到了一个例子.
我正在写一个网络浏览器插件(NPAPI.)
我的插件启动一个工作线程,随着工作进展,我想将事件传递回Javascript.但是由于NPAPI线程模型,工作线程直接回调到NPAPI是不合法的,因此工作线程不能调用Javascript.
对此的一个解决方案是NPN_PluginThreadAsyncCall函数.但这是一个相对较新的功能.例如,它仅支持Firefox 3.
有没有办法在不使用NPN_PluginThreadAsyncCall的情况下从NPAPI插件中获取异步事件传递/ javascript执行?在添加此功能之前,人们做了什么?
我知道如果我写一个C++插件,那么我至少需要Linux,Mac,Windows版本,但是完整的组合列表是什么?许多浏览器都支持NPAPI,所以这意味着完全相同的编译NPAPI插件二进制文件/安装程序/ Windows可以在支持NPAPI的所有Windows浏览器中使用吗?或者你是否必须以某种方式为每个浏览器单独"编译"相同的插件代码?
我们编写了一个文档管理系统,并希望使用Web客户端对文档进行数字签名.我们的Java客户端应用程序已经能够应用和检查数字签名,但我们希望甚至可以使用我们的Web客户端进行签名.这是用GWT编写的,因此,当在客户端运行时,它是一个JavaScript应用程序.
我们不想创建Java applet并将其下载到客户端并执行它.我们希望使用浏览器安全设备或浏览器API来签署文档.我们还希望保留完整的文档服务器端,并仅向客户端移动文档哈希.
我们认为这应该可以使用NSS 或npapi/npruntime,但我们没有找到任何关于此的信息.(顺便说一句,在IE中也可以使用npruntime吗?我们应该使用ActiveX来实现与IE相同的结果吗?)
你有什么提示吗?
我的问题是关于2014年12月不支持NPAPI插件的Chrome公告.火狐也遵循相同的原则.我在我的一个遗留应用程序中有一个基于NPAPI的插件,直到现在一直运行良好但在Chrome和Firefox的公告后我正在寻找替代方案.
我想问专家:
什么可以作为NPAPI的替代选择?
对于新的选项,我是否需要编写一些新的组件或者我可以在我的插件中制作一些包装并在我的应用程序中使用它.很少有例子会受到赞赏
其他选项是否会特定于浏览器?
任何帮助和建议将受到高度赞赏.
我正在研究一个独立的守护程序可执行文件,它需要在主机上加载现有的第三方NPAPI插件.我想要做的是将生成的视图从插件渲染到纹理/表面.
它需要在Mac和Windows上运行,但由于我是一个沉重的Mac用户,我决定首先构建Mac版本.我们没有这个插件的源代码 - 这是外部供应商提供给我们的东西 - 所以它是一个黑盒实现.
在网络上,该插件的工作方式与flash非常相似.您在链接到某个mimetype(即应用程序/闪存)的网页中嵌入了一个区域,并加载了插件,而插件又会指示插件加载某个文件(想想一个SWF),然后再渲染它.
我现在正在做的是:
1. Open the library (Bundle) and extract NP_Initialize etc.
2. Call NP_Initialize -> returns the object with NPP function pointers etc
3. Call NPP_New (this calls a set of NPP functions) -> ultimately returns NPERR_NO_ERROR.
Run Code Online (Sandbox Code Playgroud)
由于NPERR_NO_ERROR是预期的响应,我假设这三个步骤已成功完成.
在NPP_New期间,插件请求Cocoa事件模型和Core Animation(或者Core Graphics,如果我为Core Animation返回false)渲染模式.
然后我打电话给:
4. NPP_SetWindow
5. Once the window is set, I load an online file with CURL, and call NPP_NewStream/WriteReady/Write and DestroyStream.
Run Code Online (Sandbox Code Playgroud)
根据我在NPAPI文档中可以找到的内容,NewStream/WriteStream/etc函数基本上将文件加载到插件的内存中,因此可以呈现它.
该插件在浏览器中支持Core Animation和Core Graphics,并且在支持NPAPI插件的浏览器中运行良好.
完成上述所有操作后,我尝试渲染到纹理,但在Core Graphics模式下,我继续使用CGContextRef从NPP_Event函数调用返回错误响应.在Core Animation模式下运行时,我使用renderInContext将纹理渲染到位图,但整个图像保持空白/透明.
这是一个很长的镜头,但有没有人有任何想法?
我想在客户端使用扫描仪,在我没有问题地使用Java Applet之前,但是在chrome决定不支持Java之后,我该怎么办。如果有JS,Jquery或其他语言的解决方案,请告诉我