我正在开发可以与浏览器通信的桌面应用程序。我想要的是将参数从浏览器发送到桌面应用程序以执行某些处理,然后获取返回值作为值。
在应用程序中,我使用Nancy
从浏览器获取POST数据。然后,我将数据作为参数传递给SignHashViewModel
进行一些处理,但是我无法从SignHashViewModel
中获取值。
我正在尝试学习async
和await
以查看是否可以解决问题,但是我不知道如何将其应用于我的代码。
下面的Javascript代码将字符串哈希值发布到Nancy
服务器,并返回结果:
Signhash.php
<?php
if (isset($_GET['hashStr']))
{
$hashStr = $_GET['hashStr']; // get param from URL
}
?>
<script type="text/javascript">
$(document).ready(function() {
var hash = JSON.stringify("<?php echo $hashStr ?>");
$.post("http://localhost:50011/MyProject/signHash", {hash}, function(data) //this line will post hash to nancy server and get the data as result
{
var result = JSON.parse(data);
console.log("ErrCode : " + result.ErrCode );
console.log("ErrMsg : " + result.ErrMsg );
console.log("CertData : " + result.CertData );
});
});
</script>
从我使用此类的JavaScript中获取POST数据。
ServerModule.cs
Post ("/signHash", (args) =>
{
string result = null;
List<string> dataItem= new List<string>();
ActivateItems.OpenItem(new SignHashViewModel(dataItem)); //This line activate the screen with param
return result; // Here I dont know how to get return value from SignHashViewModel
});
此类将签署哈希值
SignHashViewModel.cs
public SignHashViewModel(List<string> dataItem)
{
DataItem = dataItem; // Set as Property
}
public PDFInfo Sign() //Run this method when button is clicked
{
PDFInfo pi = new PDFInfo();
SignHashToken jsonData = new SignHashToken();
pi = jsonData.SignHash(DataItem , userPin); //
return result;
}
我希望我可以得到SignHashViewModel
的结果并传递给浏览器。希望有人能在此方面为我提供帮助或提供其他解决方案也很好,谢谢。