问题描述 : 需要在wpf程序下使用webbrowser打开网页播放视频,但视频在程序中播放时提示flash plugin failed to load,
但是在相同环境的系统下ie浏览器是可以打开的
环境:.net版本4.6.1 webbrowser ie11
问题分析 : 浏览器内核,浏览器安全设置,环境
原因:
当通过脚本动态地尝试使用外部接口显示缓存的.swf应用程序时,会发生此问题。所以,另一个快速repro将是以下(从Adobe错误报告复制):
- 使用嵌入式WebBrowser控件创建一个C#应用程序。
- 加载没有内容的HTML页面。
- 通过JavaScript,通过对象标签添加一个带有外部接口的SWF。(在这一点上,我看到服务器流量,请求SWF。)
- 从JavaScript访问SWF的外部接口。行得通。
- 浏览到第二个网页。
- 回到空的一个。
- 通过JavaScript,再次添加SWF。无法联系外部接口。(没有服务器流量,表示SWF已被缓存。)
解决方案:
private void ClearCachedSWFFiles()
{
try
{
var cachefolder = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) +
"\\Microsoft\\Windows\\INetCache\\IE";
var dirinfo = new DirectoryInfo(cachefolder);
foreach (var directoryInfo in dirinfo.GetDirectories())
{
foreach (var fileInfo in directoryInfo.GetFiles("*.swf"))
{
fileInfo.Delete();
}
}
}
catch (Exception ex)
{
throw ex;
}
}
在每次启动控件并使用闪存激活的内容加载页面时从IE 清除swf文件