是否可以使用带有可变参数的Siri快捷方式?

时间:2018-11-13 21:14:50

标签: ios siri sirikit sirishortcuts

我的应用程序用户可以执行许多相关操作,我想让他们使用Siri来执行操作,但是我不确定如何有效地执行该操作。我知道我可以在用户执行操作时捐赠import sys import random from PyQt5 import QtCore, QtGui, QtWidgets class Widget(QtWidgets.QWidget): def __init__(self, *args, **kwargs): super(Widget, self).__init__(*args, **kwargs) self.listview = QtWidgets.QListView() self.listview2 = QtWidgets.QListView() path = r'C:\Users\Desktop\Project' self.fileModel = QtWidgets.QFileSystemModel(self) self.fileModel.setRootPath(path) self.fileModel.setFilter(QtCore.QDir.NoDotAndDotDot | QtCore.QDir.Files) self.listview.setModel(self.fileModel) self.listview.setRootIndex(self.fileModel.index(path)) self.listview.selectionModel().selectionChanged.connect(self.on_selectionChanged) self.listview.setSelectionMode(QtWidgets.QAbstractItemView.ExtendedSelection) self.model = QtGui.QStandardItemModel(self) self.listview2.setModel(self.model) hlay = QtWidgets.QHBoxLayout(self) hlay.addWidget(self.listview) hlay.addWidget(self.listview2) timer = QtCore.QTimer(self, interval=1000, timeout=self.test_color) timer.start() def on_selectionChanged(self, selected, deselected): roles = (QtCore.Qt.DisplayRole, QtWidgets.QFileSystemModel.FilePathRole, QtWidgets.QFileSystemModel.FileNameRole, QtCore.Qt.DecorationRole) for ix in selected.indexes(): it = QtGui.QStandardItem(ix.data()) for role in roles: it.setData(ix.data(role), role) it.setData(QtGui.QColor("green"), QtCore.Qt.BackgroundRole) self.model.appendRow(it) filter_role = QtWidgets.QFileSystemModel.FilePathRole for ix in deselected.indexes(): for index in self.model.match(ix.parent(), filter_role, ix.data(filter_role), -1, QtCore.Qt.MatchExactly): self.model.removeRow(index.row()) def test_color(self): if self.model.rowCount() > 0: n_e = random.randint(0, self.model.rowCount()) rows_red = random.sample(range(self.model.rowCount()), n_e) for row in range(self.model.rowCount()): it = self.model.item(row) if row in rows_red: it.setData(QtGui.QColor("red"), QtCore.Qt.BackgroundRole) else: it.setData(QtGui.QColor("green"), QtCore.Qt.BackgroundRole) if __name__ == '__main__': app = QtWidgets.QApplication(sys.argv) w = Widget() w.show() sys.exit(app.exec_()) ,但是可以通过可自定义的参数捐赠操作吗?用户可以说“ 执行操作 Installing collected packages: greenlet, gevent, locustio Running setup.py install for greenlet ... error Complete output from command /Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6 -u -c "import setuptools, tokenize;__file__='/private/var/folders/3t/_nx5hykn0hsfs5v1x_svhdym0000gn/T/pip-install-lrm7ibd5/greenlet/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /private/var/folders/3t/_nx5hykn0hsfs5v1x_svhdym0000gn/T/pip-record-77exz0iu/install-record.txt --single-version-externally-managed --compile: running install running build running build_ext building 'greenlet' extension creating build creating build/temp.macosx-10.6-intel-3.6 gcc -fno-strict-aliasing -Wsign-compare -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -arch i386 -arch x86_64 -g -I/Library/Frameworks/Python.framework/Versions/3.6/include/python3.6m -c greenlet.c -o build/temp.macosx-10.6-intel-3.6/greenlet.o xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun error: command 'gcc' failed with exit status 1 ---------------------------------------- Command "/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6 -u -c "import setuptools, tokenize;__file__='/private/var/folders/3t/_nx5hykn0hsfs5v1x_svhdym0000gn/T/pip-install-lrm7ibd5/greenlet/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /private/var/folders/3t/_nx5hykn0hsfs5v1x_svhdym0000gn/T/pip-record-77exz0iu/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /private/var/folders/3t/_nx5hykn0hsfs5v1x_svhdym0000gn/T/pip-install-lrm7ibd5/greenlet/ ”,其中INIntent是参数。用户使用Siri之前必须执行12个动作中的每个动作吗?我也知道可以使用11来使用户更轻松地在应用程序中使用Siri,但是我找不到任何资源可以让我知道我想要什么完全有可能...

1 个答案:

答案 0 :(得分:1)

不可能有可变参数。 Siri快捷方式用于用户执行的操作,因此捐赠时所有可用的信息都应可用。 如果要使用不同的参数执行操作,则必须为每个操作捐赠。

您还可以在Apple开发人员论坛中查看有关同一问题的这篇文章: https://forums.developer.apple.com/message/326487#326487