我想通过本地 html 文件在 Android 手机中保存新联系人,而不使用任何服务器端组件。
我已经构建了一个 html 页面,其中包含构建 vcard 所需的所有信息。我想通过相同的 html 页面将该 vcard 保存在电话联系人列表中。
到目前为止我尝试过的方法 -
tel://- 通过此 href 标签 - 我可以启动联系人拨号屏幕,但我想启动添加联系人屏幕。
在 Android 中 - 您可以指定启动任何应用程序的 Intent (深层链接?) 我尝试了以下超链接,但它启动了 Google Play 商店,最终结果为“未找到”
“scan”被放入超链接中,因为我发现了一个通过 html 启动扫描仪应用程序的示例。我不知道启动添加联系人屏幕的确切超链接应该是什么。
互联网上的示例很少,但都是 Android Native 的。我不确定 HTML 中这些变量的确切常量值。
打开联系方式
- 建立一个超链接 - 用于下载 vcard。文件下载后 - 用户必须手动打开它。它会自动要求用户保存新联系人。我只是想避免这种下载和打开下载的文件。是否可以通过javascript直接构建、保存、打开本地vcard文件?
我的服务器上托管有 vcf 文件 - 当您单击该链接时 - 它将下载到您的设备。当您打开它时 - 它将在添加新联系人文件中打开。
我想通过html页面在手机联系人列表中保存一个新联系人。 html 页面也是移动本地的(不在互联网上)
实际结果是 - 通过链接下载的 vcard 存储在 android 的本地下载文件夹中。用户必须手动打开文件并保存联系人。
至少如果我可以自动打开下载的 vcf 文件,那就太好了。该方法应该适用于 Android 和 iPhone。
最佳答案
这里有两个有用的资源:
- https://developer.android.com/training/contacts-provider/modify-data#create-an-intent - 解释如何在 Android 上通过 Intent 添加/编辑联系人
- https://developer.chrome.com/multidevice/android/intents - 解释如何格式化从 Chrome 中显示的网页启动的任何 Android Intent (请注意,它仅适用于 Chrome/WebView,不适用于其他浏览器)
因此您需要启动一个 Intent ,例如:
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,根本不可能
关于android - 如何在 HTML 的帮助下在 Android 和 iPhone 中启动添加新的联系人屏幕,而无需任何服务器端代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58687907/