qml访问kde的kwallet

时间:2014-04-29 12:38:07

标签: javascript widget qml kde

我正在用qml写一个kde等离子体。它是一个小部件,使用操作员提供的api显示我们国家的一个大型移动priveder的移动使用情况。为了获得数据,必须使用电话号码+密码进行请求,并且我想使用kwallet将“帐户”存储在此小部件的某个kwallet文件夹中。 问题是,如果可能的话,如何在基于qml / javascript的小部件中使用kwallet?我在网上找不到任何信息。我用kwallet发现了这个等离子体:http://kde-look.org/content/show.php/gmail-plasmoid?content=101229 但是这个是用python编写的,并且正在导入一些python kde库,所以我不能真正使用它。任何建议甚至链接到一些有用的api都会很棒。

1 个答案:

答案 0 :(得分:0)

可以在命令行上使用qdbus访问Kwallet。显然有一种方法可以使用扩展名LaunchApp在Javascript plasmoids中进行命令行调用,如下所示:

Button {
    onButtonClick: plasmoid.runCommand("qdbus",
        ["<add-missing-parameters-here>"]);
}

要使扩展程序正常工作,您需要将此行添加到桌面文件中:

X-Plasma-RequiredExtensions=LaunchApp

确切的命令行调用是这样的:

  1. 拨打电话打开钱包

    qdbus org.kde.kwalletd /modules/kwalletd org.kde.KWallet.open <wallet name> 0 "<your application name>"
    
  2. 使用返回的ID访问密码

    qdbus org.kde.kwalletd /modules/kwalletd readPasswordList <wallet-id> kmail "<entry name>" "<your application name>"
    
  3. 我还没有尝试过任何一种,但理论上它可以起作用。

    链接: