1

以下のコードを使用して、Metro アプリの People's アプリから連絡先名を取得します。

    function selectContact() {

    var picker = Windows.ApplicationModel.Contacts.ContactPicker();
    picker.commitButtonText = "Select";
    picker.selectionMode = Windows.ApplicationModel.Contacts.ContactSelectionMode.contacts;
            picker.pickMultipleContactsAsync().done(function (contacts) {
        if(contacts.length>0){
            var j =document.getElementById("contactlist");
            contacts.forEach(function (contact) {
                j.innerHTML += contact.name + "<br>";
            });
}

ここで、連絡先のサムネイル画像を取得してアプリケーションに追加する必要があります。連絡先用の getThumbnailAsync() メソッドがありますが、その使用方法がわかりません... 以下のコードを使用しましたが、thumbnail.size は常にゼロです。

    contacts.forEach(function (contact) {
        contact.getThumbnailAsync().done(function (thumbnail) {
            if (thumbnail.size > 0) {
                var imageBlob = window.URL.createObjectURL(thumbnail,false);
                document.getElementById("contactlist").innerHTML += "<img id=" + i + " /><br>";
                document.getElementById(i).src = imageBlob;
                i++;
            }

        });
    });
4

1 に答える 1

0

あなたのコードは私には大丈夫です。あなたのユーザー アカウントがアプリにあなたのイメージの使用を許可しているかどうかを確認します。これは、PC 設定で指定できます。

ここに画像の説明を入力

許可していない可能性があるため、メソッドは常に画像の長さ0を返します。

編集:申し訳ありませんが、あなたの質問を読み直したところ、People アプリについて話していることがわかりました。申し訳ありませんが、ログインしているユーザーのアカウント画像にアクセスしようとしたときに他の誰かがこれに遭遇した場合に備えて、この回答をここに残しておきます。

于 2012-10-03T02:00:22.093 に答える