2

如何使用 以编程方式获取 Android/iPhone 的联系人列表titanium,我需要这个用于只读目的。

我已经检查过这个我可以使用任何 Titanium API 获取用户的电话号码吗?,但我喜欢使用我的应用程序打开它,然后拨打所选号码的电话,我的应用程序不会对该号码执行任何其他操作(编辑、删除)。在使用钛或简单的 Android 和 iPhone 的 Android 和 iPhone 中是否有可能?

4

3 回答 3

5

首先,您需要访问此处描述的联系人。

之后,可以通过以下方式获取所有联系人getAllPeople

这适用于 iOS 和 Android。

在 Android 上执行呼叫很简单(您应该使用来创建电话呼叫意图Ti.Android.ACTION_DIAL)。在 iOS 上,您只需要显示号码,系统就会将其链接到呼叫操作。如果没有,您可以向元素添加侦听器:

label.addEventListener('click', function(e) {
  Ti.Platform.openURL('tel:<number');
});
于 2013-04-05T12:03:25.920 回答
1

您可以使用showContacts方法获取您的电话联系人,如下所示

Titanium.Contacts.showContacts(); //Will display the native contacts in both iphone and android

如果是 iphone,您应该需要联系人的访问权限。您可以按如下方式检查权限

if (Ti.Contacts.contactsAuthorization == Ti.Contacts.AUTHORIZATION_AUTHORIZED){
    //You've authorization
    //Some code here
} else if (Ti.Contacts.contactsAuthorization == Ti.Contacts.AUTHORIZATION_UNKNOWN){
    Ti.Contacts.requestAuthorization(function(e){
    //Authorization is unknown so requesting for authorization
    if (e.success) {
            //You've authorization
            //Some code here
        } else {
            //No authorization hence you cannot access contatcs
        }
    });
} else {
    //No authorization hence you cannot access contatcs
}

有关详细信息,请参阅钛触点模块

Ti.Contacts.getAllPeople也会这样做,也请参考链接

于 2013-04-05T12:21:53.770 回答
0
$.index.open();
var people = Titanium.Contacts.getAllPeople();
var totalContacts = people.length;
Ti.UI.setBackgroundColor('#F0FFFF');
var data = [];
    var win = Ti.UI.createWindow({
    backgroundColor : 'white',
});

var view = Ti.UI.createView({
    height : "50dp",
    width : "100%",
    top : '0dp',
    backgroundColor : '#050505',
});

var text = Ti.UI.createLabel({
    text : "Contact Book",
    left : 20,
    color : '#fff'

});

view.add(text);
win.add(view);

var template = {
    childTemplates : [{
        type : 'Ti.UI.Button',
        bindId : 'image',
        properties : {
            left : '2dp',
            backgroundImage : 'appicon.png',
        }
    }, {
        type : 'Ti.UI.Label',
        bindId : 'rowtitle',
        properties : {
            left : '70dp'
        }
    }]
};
if( totalContacts > 0 )
{ 
    for( var index = 0; index < totalContacts; index++ )
    {
         var person = people[index];
        Titanium.API.info(person.fullName);
        //table.add(person.fullName);
        if(person.fullName != null){
            data.push({
                rowtitle : {
                    text :person.fullName
                },

            });
        }
    }
}

var listView = Ti.UI.createListView({
    top : '55dp',
    templates : {
        'plain' : template
    },

    defaultItemTemplate : 'plain',
});

var section = Ti.UI.createListSection({
    items : data
});

listView.sections = [section];

win.add(listView);
win.open();
于 2015-04-22T11:08:50.060 回答