解决 iOS 内英文系统中联系人排序问题

好多人喜欢将 iOS 设置为英文系统,但是有一个问题其实蛮头疼的,就是联系人的排序问题。在英文系统中,所有中文名字被默认排到了 # 后面,而不是按照拼音来分栏的。

网上有一个方法就是将每一个你需要排序的名片进行编辑,在 添加项目/Add Field 这一个按钮上点击 Phonetic First/Last Name, 然后将联系人的姓或者名的拼音输入上去。我这里为了方便,在 Mac 中进行编辑,iOS 中同理,没有 MAC 的,可以用苹果账号登陆 iCloud.com 进行联系人管理。

《解决 iOS 内英文系统中联系人排序问题》

添加后如下:

《解决 iOS 内英文系统中联系人排序问题》

这是本文的基本原理,通过添加拼音到 Phonetic Name 来让 iOS 进行对中文联系人的排序。

但是显然,作为程序员是肯定不愿意干这个体力活的。 于是我们可以在 Mac 中或者 iCloud 上将所有的联系人批量选中,然后选择 Export vCard, 将所有联系人导出到本地。

然后重命名为 in.vcf,使用 Python3 运行以下程序:

# Phonetic name adder for vCard
# using Python3

f = open('./in.vcf')

output = ""

for line in f:
    if line.startswith('N:'):
        name = line[2:-1].split(";")
        if name[0] != '':
            real = name[0]
        if name[1] != '':
            real = name[1]
        print('Input Pinyin for ' + real[0])
        output += 'N:' + real[0] + ';' + real[1:] + ';;;\n'
        output += 'FN:' + real[1:] + ' ' + real[0] + '\n'
        output += 'X-PHONETIC-LAST-NAME:' + input() + '\n'
    elif line.startswith('FN:'):
        pass
    else:
        output += line

nf = open('./out.vcf', 'w')
for line in output:
    nf.write(line)

程序会产生一个 output.vcf 文件,然后把原有的联系人删除,将产生的 vCard 文件 import 到 Mac 或者 iCloud 上即可。 然后在与 iCloud 相关联的 iOS 上刷新一下联系人就可以看到正常排序的列表啦!

程序有一个捉急的点是,我们需要手工输入姓的拼音,每次输入以后回车即可。 当然我们可以采用第三方的拼音库可以解决这个问题。

    原文作者:移动开发
    原文地址: https://my.oschina.net/shinedev/blog/483815
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞