gpt4 book ai didi

javascript - 添加联系人 Windows 10 通用

转载 作者:可可西里 更新时间:2023-11-01 11:49:41 26 4
gpt4 key购买 nike

是否可以像在 Android 中那样以编程方式将联系人添加到 Windows 10 中的地址簿/人脉应用?

我有一个存储联系人信息的服务器,我想制作一个应用程序来将我的联系人与 Windows 10 同步。

我尝试了几件事,但没有真正奏效。这是我走了多远:

  1. 成功下载联系人数据。
  2. 将联系人数据放在 Contact 对象中。

这是我试过的:

                contacts.ContactManager.requestStoreAsync().done(function (contactStore) {
contactStore.createContactListAsync("name").done(function (contactList) {
for (i = 0; i < data.length; i++) {
var contact = new contacts.Contact;
//populate Contact item
contactList.saveContactAsync(contact);
}
contactList.saveAsync;
});
});

但是我遇到了访问被拒绝错误。

如有任何帮助,我们将不胜感激。提前致谢!

最佳答案

首先,确保您已在应用 list 中添加联系人功能。

  <Capabilities>
<Capability Name="internetClient" />
<uap:Capability Name="contacts"/>
</Capabilities>

如果您没有请求对联系人存储的读/写权限,您也会收到访问被拒绝的错误。

ContactStoreAccessType enumeration

在这种情况下,您可以请求“appContactsReadWrite”权限。

但据我测试,在调用createContactListAsync 方法时会出现一些API 问题。

当前的解决方法是添加 windows 运行时组件包装器:

public sealed class ContactManagerWrapper
{
public IAsyncAction AddContactAsync(string userName, string email)
{
return AsyncInfo.Run(async (token) =>
{
var store = await ContactManager.RequestStoreAsync(ContactStoreAccessType.AppContactsReadWrite);

var contactLists = await store.FindContactListsAsync();

var contactList = contactLists.FirstOrDefault();

var contact = new Contact();

contact.Name = userName;

contact.Emails.Add(new ContactEmail() { Address = email, Kind = ContactEmailKind.Personal });

await contactList.SaveContactAsync(contact);
});
}
}

WinJS 项目:

    document.getElementById('click_me').addEventListener("click", function () {
var mgr = new UWPRuntimeComponent.ContactManagerWrapper();

mgr.addContactAsync('Jeffrey', 'jeffrey.chen@example.com').done(function () {
console.log("add contact successfully");
});
});

关于javascript - 添加联系人 Windows 10 通用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33172820/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com