调用Blackberry 10 qml中的函数?

时间:2013-02-14 11:06:03

标签: qml blackberry-10

我在点击qml中的按钮时调用了邀请给BBM,但我需要发送联系人的邀请如何执行此操作?我的代码

 Button {
        text: "Invite"
        onClicked: {
            invokeQuery.uri = "pin:210000A"
            invokeQuery.updateQuery();
        }
        attachedObjects: [
            Invocation {
                id: invokeShare
                query: InvokeQuery {
                    id: invokeQuery
                }
                onArmed: {
                     trigger("bb.action.INVITEBBM");

                }
            }
        ]
    }

任何人都可以给我一些解决方案来解决这个问题。 感谢

1 个答案:

答案 0 :(得分:0)

调用查询是不可变对象,这意味着查询中的值不是动态的。如果要在动态中更新查询,则需要通过控制信号或变量来进行查询。

例如,您有一个名为Inviter的组件,其中公开了pin属性:

import bb.cascades 1.0

Container {
    property string pin
    Button {
        text: "Invite to BBM"
        onClicked: {
            query.uri = "pin:" + pin
            invoke.trigger("bb.action.INVITEBBM")
        }
    }
    attachedObjects: [
        Invocation {
            id: invoke
            query: InvokeQuery {
                id: query
                invokeTargetId: "sys.bbm.sharehandler"
                onQueryChanged: {
                    invoke.query.updateQuery()
                }
            }
        }
    ]
}

然后你可以这样使用它:

import bb.cascades 1.0

Page {
    Container {
        layout: DockLayout {
        }
        TextArea {
            id: pinEditor
            hintText: "Enter PIN to invite"
            onTextChanged: {
                inviter.pin = text
            }
            input.submitKey: SubmitKey.Send
        }

        Inviter {
            id: inviter
            horizontalAlignment: HorizontalAlignment.Center
            verticalAlignment: VerticalAlignment.Center
        }
    }
}

此外,请不要忘记在bar-descriptor.xml中启用“Blackberry Messenger”权限,并将以下库添加到.pro文件中:

LIBS += -lbbplatformbbm
LIBS += -lbbsystem