我用Swift上一个版本和xcode 8.3.3做了一个简单的浏览器。我希望在有html5视频的时候能够全屏进入(就像在YouTube上一样)。我现在在YouTube上得到“全屏不可用”。旧的WebView也有同样的问题...在iOS上它可以工作。
编辑。也许这是不可能的。我试着看看JavaFX WebView和WPF WebBrowser,它们有同样的限制。实际上,有一个家伙能够允许在WPF WebBrowser上全屏播放YouTube视频,但只有创建一个完整的html页面:在WebBrowser控件中全屏播放youtube
当然,我不能为一个页面中的每个视频创建一个网页(至少我不知道如何创建,如果你知道请告诉我)。
原始消息:我用Swift最新版本和xcode 8.3.3做了一个简单的浏览器。一切都正常,但我不能像用旧的WebView那样激活插件。既然我用的是Mac,我应该可以激活插件(我知道这在iOS上是不可能的),我错了吗?
此外(在这里我得到了同样的问题,在旧的WebView)没有办法激活全屏的html5视频(至少我不知道如何)。
@IBOutlet weak var webView: WKWebView!
let urlString = "http://myurl.com/"
self.webView.load(NSURLRequest(url: NSURL(string: urlString)! as URL) as URLRequest!)
self.webView.configuration.preferences.plugInsEnabled = true
这是让基本浏览器工作的基本代码,但是在WKWebView的界面生成器中没有启用插件的选项,我真的不知道如何让html5视频全屏(像youtube)。
好的,我终于找到了插件部分的答案:自我.网络视图.配置.首选项.插件已启用=真
真的很容易,但很难理解在哪里可以找到它,我不得不去这里:然后猜一猜...
4条答案
按热度按时间n3ipq98p1#
macOS 12.3的更新
从iOS 15.4和macOS 12.3开始,WKPreferences有了新的属性isElementFullscreenEnabled,现在非常简单。
原始答案(macOS 12.3之前版本)
除了使用私有API,您还可以通过在配置中使用KVO更改属性来实现这一点。
使用Swift 5:
在macOS 10.15和11上测试
6yjfywim2#
要允许
WKWebView
使用全屏HTML,您需要访问WKPreferences
中的私有API(参见https:可可-L240)。简单地称之为:
如果你注意到奇怪的调整大小的网页视图一旦你退出全屏,我发现这修复了我的问题:
注意:由于您正在访问私有API,这将在Mac App Store上被拒绝。
k2fxgqgv3#
步骤
在下一节中,有一些照片引用了以下每个步骤。
1.在XCode中单击您的"项目
1.点击"添加目标"
1.点击"可可框架"
1.点击"下一步"
1.在"产品名称"中输入标题
1.点击"完成"
1.单击"链接的框架和库"中的"添加项目"
1.在"搜索"中输入"WebKit"
1.点击"WebKit.框架"
1.点击"添加"
1.单击"Project. h"文件
1.从解决方案中添加"Import"代码
1.从解决方案中添加"全屏"代码
1.将您的"项目框架"导入您的swift文件
1.在您的Web视图中实现"全屏"代码
1.我不得不将用户代理更改为Safari11,以使全屏模式正常工作。
4bbkushb4#
答案是没有答案。现在Mac上没有API可以获得全屏HTML5。我试着在Windows上制作同样的应用程序,UWP目前的WebView能够全屏(WPF的旧WebBrowser不能全屏)。
我认为唯一的办法就是向苹果提交反馈。