我更新我的iOS应用程序,以取代UIWebView用WKWebView.但是我不明白如何实现相同的行为WKWebView.随着UIWebView我用scalesPageToFit,以确保网络PAG具有相同大小的屏幕尺寸显示(从而出现全屏幕无需滚动).
我在网络上找到了解决方案,但它不起作用:
- (void)webView:(WKWebView *)webView didCommitNavigation:(WKNavigation *)navigation {
NSString *javascript = @"var meta = document.createElement('meta');meta.setAttribute('name', 'viewport');meta.setAttribute('content', 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no');document.getElementsByTagName('head')[0].appendChild(meta);";
[webView evaluateJavaScript:javascript completionHandler:nil];
}
Run Code Online (Sandbox Code Playgroud) 有没有人知道在WKWebView中禁用双击和缩放缩放的简单方法?我没有尝试过任何工作:
Webview.scrollView.allowsMagnification = false; // Error: value of type WKWebView has no member allowsMagnification
Webview.scrollView.isMultipleTouchEnabled = false; // doesn't do anything
Run Code Online (Sandbox Code Playgroud)
在html中:
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" /> // pile of crap, does nothing
Run Code Online (Sandbox Code Playgroud) 我已经WKWebView("myPlayer" in below code)为iFrame嵌入在其中的动态指定了帧的大小,但 youtube 视频视图显示 1/3 的WKWebView. 下面是我的代码和参考图片。
let videoURL:URL = URL(string: "https://www.youtube.com/embed/695PN9xaEhs")!
@IBOutlet weak var myPlayer: WKWebView!
var didLoadVideo = false
var embedVideoHtml:String?
override func viewDidLoad() {
super.viewDidLoad()
embedVideoHtml = {
return """
<!DOCTYPE html>
<html>
<body>
<!-- 1. The <iframe> (and video player) will replace this <div> tag. -->
<div id="player"></div>
<script>
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/player_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
var player;
function onYouTubeIframeAPIReady() {
player …Run Code Online (Sandbox Code Playgroud)