【问题标题】:Is it possible to persist Drive Picker widget settings across pages?是否可以跨页面保留 Drive Picker 小部件设置?
【发布时间】:2019-03-22 23:41:36
【问题描述】:

我的应用中有 2 个页面。第 1 页允许用户选择一个瞳孔,然后应用显示第 2 页。

在第 2 页上,我有一个 Drive Picker 小部件,允许用户选择将复制到特定文件夹的图像(取决于在第 1 页上选择的内容)。 如果用户在选择文件后关闭第 2 页上的选择器,然后再次打开它而不先访问第 1 页,则驱动器选择器会记住他们导航到的特定文件夹并允许他们继续。

如果用户再次访问第 1 页以选择不同的学生,然后返回第 2 页并使用选取器,则选取器似乎被重置并再次向用户显示其驱动器的根目录。我想避免这种行为,以便用户可以继续选择从他们上次访问(在同一会话中)到第 2 页的文件。

是否可以访问选择器的最后访问文件夹并将其存储在页面属性中,然后让选择器在下次打开时使用该属性?

我也对小部件可用的选项以及通过结果对象显示的选项感到有些困惑。我承认我曾尝试搜索堆栈溢出以获取有关如何使用结果对象的更多信息,但无法浮出水面,因此我的所有脚本都使用 widget.selectedDocuments 方式。

【问题讨论】:

    标签: google-app-maker


    【解决方案1】:

    您可以使用 sessionStorage() 来保存页面之间的变量。 它是一个客户端功能,据我所知不支持“自定义操作”,但以下功能可以解决这个问题。

    function get_ss(name){return sessionStoreage.getItem(name);}
    function set_ss(name, val){sessionStorage.setItem(name, val);}
    

    从第 1 页导航时,您可以使用自定义操作来获取学生并将其设置在 sessionStorage 中,然后导航到第 2 页

    "Custom Action=" set_ss("pupil", app.pages.Page1.decendents.PupilName.value); app.showPage(app.pages.Page2); //going from memory on the navigation code
    

    您可以添加“var student = get_ss("pupil");”从那里你需要它。

    【讨论】:

    • 您好 Scott,感谢您提供有关会话变量的信息。听起来它们可能比 App Maker 内置的 Page.Properties 系统更有用,我已经在使用该系统在页面之间保留选定的瞳孔。
    • 但是,我的问题更倾向于能够从 Drive Picker 小部件中找出最后选择的文件夹是什么,这样当我再次初始化选择器时,我可以将其传入,选择器将继续从它停止的地方开始。一旦我能得到这些信息,我就可以按照你的建议存储它并从那里开始。
    • 您可以获取所选文件的父级,然后使用该文件将视图初始化为下一页中的父视图。这个 stackoverflow 上有一个关于如何为驱动器选择器执行此操作的 q/a...
    猜你喜欢
    • 2011-03-14
    • 1970-01-01
    • 1970-01-01
    • 2014-11-29
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 2015-09-08
    • 1970-01-01
    相关资源
    最近更新 更多