如何禁用iOS捏缩放和双击缩放in Nativecript和Plain JS



我一直在禁用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特定代码,则该应用程序将中断。

最新更新