hya*_*ion 4 qml blackberry-10 blackberry-cascades
我可以使用页面中的InvokeActionItem轻松共享项目,但我需要能够在listview项目中调用它.我已设法触发调用,但我无法弄清楚触发它时如何添加数据.我一直收到错误信息
InvocationPrivate :: setQuery:不允许更改InvokeQuery对象
注意:我试图用纯QML来做这个,如果有必要,我会通过c ++来做,但QML会更好.
在Page对象内部运行的代码:
actions: [
InvokeActionItem {
ActionBar.placement: ActionBarPlacement.OnBar
title: "Share"
query {
mimeType: "text/plain"
invokeActionId: "bb.action.SHARE"
}
onTriggered: {
//myTextProperty is a string variable property for the page.
data = myTextProperty;
}
}
]
Run Code Online (Sandbox Code Playgroud)
我尝试在其他项目中使用的代码如下,但不起作用:
Container {
gestureHandlers: [
TapHandler {
LongPressHandler {
onLongPressed: {
console.log("Longpress");
invokeQuery.setData("test");
invokeShare.trigger("bb.action.SHARE");
}
}
]
attachedObjects: [
Invocation {
id: invokeShare
query: InvokeQuery {
id:invokeQuery
mimeType: "text/plain"
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
有没有办法只使用QML更改调用的数据,还是需要通过c ++运行它?
hya*_*ion 11
经过大量的浏览论坛和测试各种方法后,我终于找到了一个有效的方法.
在attachObjects中添加以下内容:
attachedObjects: [
Invocation {
id: invokeShare
query: InvokeQuery {
id:invokeQuery
mimeType: "text/plain"
}
onArmed: {
if (invokeQuery.data != "") {
trigger("bb.action.SHARE");
}
}
}
]
Run Code Online (Sandbox Code Playgroud)
然后,无论您需要调用调用,请执行以下操作:
invokeQuery.mimeType = "text/plain"
invokeQuery.data = "mytext";
invokeQuery.updateQuery();
Run Code Online (Sandbox Code Playgroud)
请注意,如果您没有检查onArmed for data,它会在创建时自动调用调用 - 对于listview,这可能导致20多个屏幕要求您在bbm上分享...;)
| 归档时间: |
|
| 查看次数: |
1880 次 |
| 最近记录: |