首页 \ 问答 \ 安装Flash支持与Flash(Flash support vs. Flash installed)

安装Flash支持与Flash(Flash support vs. Flash installed)

有没有办法(在JavaScript中)检测以下两种情况?

  1. 设备支持Flash,但未安装Flash。
  2. 设备不支持Flash(即:iPad,iPhone)

我知道如何检测是否安装了Flash,并且我知道如何专门检测iPad或iPhone,但是想要找到一种方法来一般性地检测设备是否支持Flash,而不使用任何类型的白名单或黑名单。


Is there a way (in JavaScript) to detect between the following two scenarios?

  1. Device supports Flash, but Flash is not installed.
  2. Device does not support Flash (ie: iPad, iPhone)

I know how to detect if Flash is installed, and I know how to detect an iPad or iPhone specifically, but was wanting to find a way to generically detect if the device supports Flash at all, without using any kind of whitelist or blacklist.


原文:https://stackoverflow.com/questions/7935293
更新时间:2021-05-03 19:05

最满意答案

您可以检测是否安装了闪存。 Adobe提供了用于执行此操作的Javascript代码。

您无法检测是否支持闪存(例如可用),但未安装闪存。 根据定义,如果没有安装闪存,设备上没有任何内容可以指示是否可以安装闪存。 您可以看到为什么会这样,因为设备今天可能没有闪存且没有可用的闪存,然后闪存可能会在以后提供,而不会对设备本身进行任何更改。 因此,设备本身不可能知道闪存已经可用于它。

了解闪存是否可用的唯一方法是维护您自己的巨型设备列表。 由于它不断变化,你甚至无法将其烘焙到你的JavaScript中。 您必须将它放在服务器上并通过ajax获取信息。

一个快捷方式(听起来你已经考虑过)是检测是否安装了闪存,如果没有,请查看该设备是否是少数高容量设备之一(Android,iDevice,Windows Phone,Windows平板电脑等)。 ..)并使用您预先建立的知识,了解这些设备是否有闪存可用。 对于其他设备,你只是不知道。


You can detect if flash is installed or not. Adobe provides Javascript code for doing that.

You cannot detect if flash is supported (e.g. available), but not installed. Somewhat by definition, if flash is not installed, there is nothing on the device that would indicate anything about whether flash could be installed or not. You can see why this is so because a device might ship today without flash and without flash available and then flash might be made available later without any changes to the device itself. Thus, the device itself couldn't possibly know that flash has been made available for it.

The only way to know if flash is available is to maintain your own giant device list. Since it's constantly changing, you can't even bake it into your javascript. You'd have to put it on a server and fetch info via ajax.

A shortcut (which it sounds like you've already thought about) is to detect if flash is installed and if not, see if the device is one of a few high volume devices (Android, iDevice, Windows Phone, Windows tablet, etc...) and use your pre-built knowledge of whether those devices have flash available or not. For the rest of the devices, you just wouldn't know.

相关问答

更多
  • 我认为您不能调试SWF,因为它们不包含ActionScript代码。 但是,如果在.cfg文件中启用TraceOutputFileEnable=1 ,则可以从SWF获取跟踪到文件中。 有关此处可能有用的更多信息: http://www.actionscript.org/resources/articles/207/1/Trace-and-debug-ActionScript-from-your-browser/Page1.html ,此处为http:// fatlinesofcode。 philipandr ...
  • 我建议下载MS Virtual PC或VMWare Server(免费)并创建一个VM来测试此功能。 它是唯一确定的方法。 还可以让您灵活地测试大量浏览器版本。 I recommend downloading MS Virtual PC or VMWare Server (both free) and create a VM to test this functionality. Its the only way to be sure. Also gets you the flexibility to te ...
  • 系统安装的flash播放器将在TideSDK内部提供。 你应该没有问题使用相同的。 The system installed flash player will be available inside TideSDK. You should have no problem using the same.
  • 您可以在Flex中使用Flash执行大量相同的创作材料。 在某些情况下,特别是如果您可以轻松处理编码,则更容易,因为您可以添加效果而无需调整时间轴。 您可以使用图形类绘制Flash允许您使用的简单形状,您可以设置它们的样式。 您还可以添加任何想要Flex的位图或矢量图像,并根据需要使用它们,甚至可以作为Canvas的背景图像。 我在Illustrator中创建图形符号并将它们导出为SWF文件,然后可以使用[Embed]指令直接在Flex中嵌入和访问这些文件。 它涉及一种不同的思考方式,但让我这样说:我开始是 ...
  • 您可以检查注册表项HKEY_CURRENT_USER \ Software \ Macromedia \ FlashPlayer \ FlashPlayerVersion(REG_SZ,在我的机器上返回11.0.0.58~installVector = 1。) 编辑:在64位计算机上,您需要使用HKLM \ Software \ Wow6432Node \ Macromedia \ FlashPlayer \ FlashPlayerVersion查看64位注册表。 You can check registr ...
  • 以下是一些有助于更新Flash CS6以使用任何新版Flash Player(包括11.8)的说明: http://johnbarrett.net/updating-flash-professional-cs6-to-support-11-5/ 说明适用于Mac OSX,但也适用于Windows。 Here are some instructions that work for updating Flash CS6 to use any new version of Flash Player (includ ...
  • 通常,我建议使用SwfObject在HTML中嵌入Flash,并处理Flash Player检测。 它已经或多或少成为事实上的标准,并且有一个非常简单的机制来实现你想做的事情,在Flash Player不可用时显示替代内容。 http://code.google.com/p/swfobject/ 编辑 :我现在看到Adrian在他的回答中已经提到了SwfObject。 Generally, I would recommend using SwfObject for embedding Flash in HT ...
  • 如果我正确理解了这个问题,那么您正试图在PhoneGap项目中使用OpenTok Flash SDK。 从本质上讲,PhoneGap会放置一个WebView,并在WebView中呈现您的HTML,CSS和Javascript来模拟本地应用程序。 但是,据我所知,Android不再支持WebViews中的Flash。 所以,你最好的选择是PhoneGap OpenTok插件,它使用一些原生Android代码覆盖WebView顶部的原生Android视图以显示视频流。 例如,有一个iOS OpenTok Pho ...
  • 您可以检测是否安装了闪存。 Adobe提供了用于执行此操作的Javascript代码。 您无法检测是否支持闪存(例如可用),但未安装闪存。 根据定义,如果没有安装闪存,设备上没有任何内容可以指示是否可以安装闪存。 您可以看到为什么会这样,因为设备今天可能没有闪存且没有可用的闪存,然后闪存可能会在以后提供,而不会对设备本身进行任何更改。 因此,设备本身不可能知道闪存已经可用于它。 了解闪存是否可用的唯一方法是维护您自己的巨型设备列表。 由于它不断变化,你甚至无法将其烘焙到你的JavaScript中。 您必须将 ...
  • 然后,而不是显示“请安装Flash”文本,而是显示控件的HTML5版本。 将HTML5代码放在“请安装Flash”的位置。 此外,如果不支持,首先使用HTML5会更容易(更像是可取的)然后再回到Flash。 像这样的东西:

相关文章

更多

最新问答

更多
  • 如何从rails插件加载javascript文件(How to load javascript file from rails plugin)
  • 我正在研究有向图的DFS,如何到达没有任何边缘指向的节点?(I'm working on a DFS of a directed graph, How do I get to a node without any edges pointed at it?)
  • 无法在swift中展开可选项(can't unwrap optional in swift)
  • 如何从熊猫中提取列表?(How to extract a list from pandas?)
  • 计算不同列中2个值的出现次数(Count number of occurrences of 2 values in different columns)
  • Stack ExtJS 6 + Spring Boot(Stack ExtJS 6 + Spring Boot)
  • 如何安装ioreg?(How to install ioreg?)
  • Chrome Packaged app webview中的重音字符未显示(Accented characters in Chrome Packaged app webview not showing up)
  • C ++ recvfrom超时(C++ recvfrom timeout)
  • 如何使用实体框架(.edmx模型)和Razor视图为MVC4或MVC 5创建部分视图?(How can i create a Partial View for MVC4 or MVC 5 using Entity Framework (.edmx Model) with Razor Views?)
  • 子类QStyledItemDelegate忽略样式表(Subclassed QStyledItemDelegate ignores Stylesheet)
  • 有没有办法以编程方式配置ios应用程序的通知显示设置?(Is there a way to programmatically configure the notification display setting for an ios app?)
  • boost asio serial_port_service和serial_port有什么区别(What is the difference of boost asio serial_port_service and serial_port)
  • 如何通过解析nginx日志文件自动拒绝IP地址(How to deny ip address automatically by parsing nginx log file)
  • 如何在C#中为ASCII 127定义字符或字符串常量?(How might I define a character or string constant in C# for ASCII 127?)
  • 如何获得R中两个集合的差异?(How to get the differences of two set in R?)
  • 如何通过IMG-Activity找到定制路径(How to find the Customizing Path via IMG-Activity)
  • 可以用python窗口打开.py文件么
  • 指针的增量是否与整数的增量相同?(Does increment in pointer not same as that of integer? [closed])
  • 我无法删除使用Delphi7处于关系中的数据库的2个表中的所有数据(I can't delete all the data within 2 tables of a database which is in a relationship using Delphi7)
  • 使用反射向ArrayList添加未知类的对象(Add an object of unknown class to ArrayList with reflection)
  • 我想学JAVA 推荐下怎么 学
  • 什么是ASP.NET Identity的IUserSecurityStampStore 接口?(What is ASP.NET Identity's IUserSecurityStampStore interface?)
  • jquery如何获取多个同id的div,然后修改css属性左边间距left的值
  • jquery ui resizable:调整旋转对象的大小(jquery ui resizable: resizing the rotated objects)
  • 如何用sublime text编写微信小程序代码
  • Hibernate:在一个数据库表行中存储一个固定长度的数组(Hibernate: Storing an fixed length array in one database table row)
  • shared_ptr用于原始指针参数(shared_ptr for a raw pointer argument)
  • 将本地git分支与远程分支进行比较?(How to compare a local git branch with its remote branch?)
  • 如何在DOM中查找字符串并通过php或jQuery更改它们(how to find strings in DOM and change them by php or jQuery)