Javascript 如何在Nativescript和普通JS中禁用iOS收缩缩放和双击缩放
对于一个用纯JS编写的Nativescript web应用程序,我在iOS上禁用缩放功能失败。似乎有针对这个问题的TypeScript解决方案,但我还没有能够在JS中实现相同的策略 (1) 类似这样,但在普通JS中: NativeScript有一种方法可以对Objective-C类进行子类化,并公开方法: …这似乎可以通过扩展Javascript 如何在Nativescript和普通JS中禁用iOS收缩缩放和双击缩放,javascript,ios,nativescript,zooming,pinchzoom,Javascript,Ios,Nativescript,Zooming,Pinchzoom,对于一个用纯JS编写的Nativescript web应用程序,我在iOS上禁用缩放功能失败。似乎有针对这个问题的TypeScript解决方案,但我还没有能够在JS中实现相同的策略 (1) 类似这样,但在普通JS中: NativeScript有一种方法可以对Objective-C类进行子类化,并公开方法: …这似乎可以通过扩展UIViewController(2)来实现: …但我对代表们的参与方式感到困惑 我觉得这两种策略中的任何一种都应该起作用,但是对于(1)我不确定如何将所有那些declar
UIViewController
(2)来实现:
…但我对代表们的参与方式感到困惑
我觉得这两种策略中的任何一种都应该起作用,但是对于(1)我不确定如何将所有那些declare var
类转换为TS免费获得的JS。策略(2)方面,我完全不适应
有没有nativeScripter?您只需从原始代码中删除打字,然后就可以使用JavaScript了
let WebView = require("tns-core-modules/ui/web-view").WebView;
WebView.prototype.createNativeView = function () {
let jScript = `var meta = document.createElement('meta');
meta.setAttribute('name', 'viewport');
meta.setAttribute('content', 'initial-scale=1.0 maximum-scale=1.0');
document.getElementsByTagName('head')[0].appendChild(meta);`;
const wkUScript = WKUserScript.alloc().initWithSourceInjectionTimeForMainFrameOnly(jScript, WKUserScriptInjectionTime.AtDocumentEnd, true);
const wkUController = WKUserContentController.new();
wkUController.addUserScript(wkUScript);
const configuration = WKWebViewConfiguration.new();
configuration.userContentController = wkUController;
configuration.preferences.setValueForKey(
true,
"allowFileAccessFromFileURLs"
);
return new WKWebView({
frame: CGRectZero,
configuration: configuration
});
};
注意:记住添加平台检查,如果在Android上运行此iOS特定代码,应用程序将中断。谢谢Manoj。这肯定也适用于我的iPhone。谢谢你两次回答同样的问题!非常感谢。