我想通过本地html文件将新联系人保存在android手机中,而不需要任何服务器端组件。
我已经建立了一个html页面,其中包含了建立vcard所需的所有信息。我想通过同一个html页面将那个张vcard保存在电话联系人列表中。
到目前为止我已经尝试过的方法-
-
tel://-通过此href标记-我可以启动联系人拨号屏幕,但我想启动添加联系人屏幕。
-
在android中,你可以指定启动任何应用程序的意图(深度链接?(我尝试过以下超链接,但它启动了谷歌播放商店,最终结果是"未找到">
"扫描"被放在超链接中,因为我发现了一个通过html启动扫描仪应用程序的例子。我不知道什么应该是确切的超链接来启动添加联系人屏幕。
互联网上很少有这样的例子,但它们都是Android Native。我不确定HTML中这些变量的确切常量值。
打开联系人
- 构建一个超链接-下载vcard。文件下载后,用户必须手动打开它。这会自动要求用户保存新联系人。我只是想避免这种下载&正在打开下载的文件。是否可以通过javascript直接构建、保存、打开本地vcard文件
我的服务器上托管了vcf文件,当你点击该链接时,它会下载到你的设备上。当你打开它时,它将在添加新的联系人文件中打开。
我想通过html页面在电话联系人列表中保存一个新联系人。html页面也是移动的本地页面(不在互联网上(
实际结果是-通过链接下载的vcard存储在android的本地下载文件夹中。用户必须手动打开文件并保存联系人。
至少如果我能自动打开下载的vcf文件,那就太好了。这种方法应该适用于安卓系统;两者都是iPhone。
所以这里有两个有用的资源:
- https://developer.android.com/training/contacts-provider/modify-data#create-意向-解释如何在Android上通过意向添加/编辑联系人
- https://developer.chrome.com/multidevice/android/intents-解释如何格式化从Chrome中显示的网页启动的任何Android意图(注意,它只适用于Chrome/WebView,而不是其他浏览器(
所以你会想启动一个意图,比如:
Intent intent = new Intent(Intents.Insert.ACTION);
intent.setType(RawContacts.CONTENT_TYPE);
intent.putExtra(Intents.Insert.EMAIL, "hello@world.com");
intent.putExtra(Intents.Insert.PHONE, "+1-212-555-1234");
因此,根据第二篇文章中的格式,您将想要启动这样的东西:
intent://vnd.android.cursor.dir/raw_contact/#Intent;
action=android.intent.action.INSERT;
S.email=hello@world.com;
S.phone=+1-212-555-1234
end;
即<a href="intent://vnd.android.cursor.dir/raw_contact/#Intent;action=android.intent.action.INSERT;S.email=hello@world.com;S.phone=+1-212-555-1234end;">CLICK ME</a>
我认为类似的方法在iPhone上不可行,根本不可能