【问题标题】:How to disable iOS pinch zoom and double tap zoom in Nativescript and plain JS如何在 Nativescript 和普通 JS 中禁用 iOS 捏缩放和双击缩放
【发布时间】:2019-05-05 15:51:45
【问题描述】:

我在 iOS 上为纯 JS 编写的 Nativescript Web 应用禁用缩放功能失败。对此似乎有 TypeScript 解决方案,但我无法在 JS 中实现相同的策略。

(1) 类似这样的东西,但在普通的 JS 中:https://stackoverflow.com/a/48824238/3340040

NativeScript 有一种继承 Objective-C 类和公开方法的方法:https://docs.nativescript.org/core-concepts/ios-runtime/how-to/ObjC-Subclassing#calling-base-methods-Exposed

...这似乎可以通过扩展UIViewController (2): https://stackoverflow.com/a/51229156/3340040

...但我不知道代表是如何参与的。

我觉得这两种策略中的任何一种都应该有效,但是对于 (1) 我不确定如何将所有这些 declare var 类转换为 TS 以某种方式免费获得的 JS。和策略(2),我只是在我的元素之外。

有任何 NativeScripters 吗?

【问题讨论】:

    标签: javascript ios nativescript zooming pinchzoom


    【解决方案1】:

    您只需从原始代码中删除类型,然后它就只是 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
        });
    };
    

    Playground Sample

    注意:记得添加平台检查,如果您在 Android 上运行此 iOS 特定代码,应用程序会崩溃。

    【讨论】:

    • 谢谢你 Manoj。这肯定也适用于我的 iPhone。并感谢您两次回答同一个问题!非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-07
    • 2014-11-26
    • 2016-03-01
    • 2011-12-25
    • 2012-05-07
    • 2018-02-20
    • 1970-01-01
    相关资源
    最近更新 更多