繁体   English   中英

安装Flash支持与Flash

[英]Flash support vs. Flash installed

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

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

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

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

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

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

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

可能会有点晚,但这个小片段有助于检查Flash是否可用:

function is_flash_support() {
    var flash_support = false;
    try {
        var fo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');
        if(fo) {
            flash_support = true;
        }
    } catch (e) {
        if(navigator.mimeTypes && navigator.mimeTypes['application/x-shockwave-flash'] != undefined && navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin) {
            flash_support = true;
        }
    }
    return flash_support;
}

没有。

您最好的选择是存储受支持的用户代理的映射数组,然后在getSupported()方法中使用该方法,该方法将用户代理与支持的用户代理列表匹配,而不匹配。

不。您是否安装了闪存,但理论上无法知道设备是否支持闪存。

毕竟,地狱可能会冻结,Apple可能会发布iOS版Flash。 或者也许用户在没有Flash播放器的Itanium上的某些Unix上运行一些奇怪的Android版本或Firefox。 您必须保留所有可用闪存播放器的列表,这很乏味。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM