不幸的是,我试图避免使用的大部分Flash都是通过专门设计的嵌入式JavaScript生成的,以防止轻松阻塞,因此我无法过滤原始HTML以包含Flash对象.
此外,我无法为我的WebVIEw禁用JavaScript,因为当我关闭JavaScript时,我要显示的页面看起来完全不同.
在执行JavaScript之后,但是在加载Flash插件之前,是否有可用于修改页面DOM的通知/挂钩?
或者我应该追求不同的方向?
谢谢,
ILJA
但是,遗憾的是,没有办法控制所有注册相同MIME类型的多个WebKit插件的优先级. WebKit插件的加载顺序是完全随机且随意的,因此您不能保证您的插件将处理Flash对象而不是Flash插件.
我发现的唯一方法是将WebVIEw子类化并覆盖私有方法-_pluginForMIMEType:如下所示:
@class WebBasePluginPackage;@interface WebVIEw ( MyFlashPluginHack )- (WebBasePluginPackage *)_pluginForMIMEType:(Nsstring *)MIMEType;@end@implementation MyWebVIEw- (WebBasePluginPackage *)_pluginForMIMEType:(Nsstring *)MIMEType{ if ( [MIMEType isEqualToString:@"application/x-shockwave-flash"] ) { return [super _pluginForMIMEType:@"application/my-plugin-type"]; } else { return [super _pluginForMIMEType:MIMEType]; }}@end
然后你只需要创建一个自定义的WebKit插件来处理“application / my-plugin-type”并让插件什么也不做.
总结以上是内存溢出为你收集整理的objective-c – 在Cocoa WebView中防止Flash全部内容,希望文章能够帮你解决objective-c – 在Cocoa WebView中防止Flash所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)