我一直在禁用iOS上的iOS缩放iOS中的iScript Web应用程序,以纯JS编写。似乎有针对的解决方案,但我无法在JS中实现相同的策略。
(1(类似的东西,但在平原JS中:https://stackoverflow.com/a/4888824238/3340040
nativecript具有子分类的一种方法,并揭示方法:https://docs.nativecript.org/core-concepts/ios-mos-muntime/how-to-mobjc/objc-subclassing#calling-base-base-base-base-base-base-base-base-base-base-base-base-base-shods--暴露
...这似乎可以通过扩展UIViewController
(2(:https://stackoverflow.com/a/51229156/3340040
...但是我陷入了代表的涉及方式。
我觉得这两种策略中的任何一个都应该有效,但是(1(我不确定如何将所有这些declare var
类转换为JS,这些类别以某种方式免费获得。和策略(2(,我只是不属于我的元素。
那里有任何native缝隙?
您只需要从原始代码中删除键入,然后只是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特定代码,则该应用程序将中断。