【问题标题】:Display UIPickerView on top of InAppBrowser (Cordova)在 InAppBrowser (Cordova) 上显示 UIPickerView
【发布时间】:2018-02-08 19:32:01
【问题描述】:

我正在使用 Cordova 插件“cordova-plugin-listpicker”,它是用于选择项目的原生 UIPickerView。它运行良好,但是我使用 InAppBrowser 来显示 Web 应用程序,并且在调用 listpicker 插件时,选择器在 InAppBrowser 后面打开。所以目前我必须隐藏浏览器才能显示选择器。有没有办法在 InAppBrowser 上方显示选择器?

    inAppBrowser.hide();

    window.plugins.listpicker.showPicker(config,
        function(item) {
            alert("You have selected " + item);
            inAppBrowser.show()
        },
        function() {
            alert("You have cancelled");
            inAppBrowser.show()
        }
    );

【问题讨论】:

    标签: cordova


    【解决方案1】:

    InAppBrowser 显示为 webview 上的模态视图,cordova-plugin-listpicker 添加为 webview superview 上的子视图,因此 InAppBrowser 将始终位于它之上。

    您可以编辑 cordova-plugin-listpicker 代码以获取当前视图而不是 webview 超级视图并将其自身添加到其中,或者将选取器作为模态视图控制器呈现在 InAppBrowser 上

    这是你应该改变的方法https://github.com/roberthovhannisyan/PhoneGap-Plugin-ListPicker/blob/master/src/ios/ListPicker.m#L111

    【讨论】:

    • 如果插件更新,更改会被覆盖吗?
    • ^(不确定是否需要标记)
    • 是的,最好的选择是 fork 插件 repo 并在那里进行更改,因此您使用 fork 而不是原始插件。然后您可以尝试发送 PR,如果他们接受,您可以继续使用原始插件,并且可以安全更新。如果没有,您将不得不通过将他们的提交挑选到您的 fork 中来使您的 fork 保持最新。
    猜你喜欢
    • 2019-09-22
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 2020-01-05
    • 1970-01-01
    • 2017-12-26
    相关资源
    最近更新 更多