如何在没有任何服务器端代码的情况下借助 HTML 在 android 和 iphone 中添加新的联系人屏幕?

Posted

技术标签:

【中文标题】如何在没有任何服务器端代码的情况下借助 HTML 在 android 和 iphone 中添加新的联系人屏幕?【英文标题】:How to launch add new contact screen in android and iphone with help of HTML with out any server side code? 【发布时间】:2020-02-29 10:38:54 【问题描述】:

我想通过本地 html 文件将新联系人保存在 android 手机中,而不需要任何服务器端组件。

我已经构建了一个 html 页面,其中包含构建 vcard 所需的所有信息。我想通过相同的 html 页面将该电子名片保存在电话联系人列表中。

到目前为止我尝试过的方法 -

    tel:// - 通过这个 href 标签 - 我可以启动联系人拨号屏幕,但我想启动添加联系人屏幕。

    在 android - 您可以指定启动任何应用程序的意图(深度链接?) 我已尝试关注超链接,但它会启动 Google Play 商店,最终结果为“未找到”

“scan”被放在超链接中,因为我发现了一个通过 html 启动扫描仪应用程序的示例。我不知道启动添加联系人屏幕的确切超链接应该是什么。

互联网上的示例很少,但都是 Android Native。我不确定 HTML 中这些变量的确切常量值。

打开联系人

    构建一个超链接 - 用于下载 vcard。文件下载后 - 用户必须手动打开它。它会自动要求用户保存新联系人。我只是想避免这种下载和打开下载的文件。是否可以通过javascript直接构建、保存、打开本地vcard文件?

我的服务器上托管了 vcf 文件 - 当您单击该链接时 - 它将被下载到您的设备。当您打开它时 - 它会在添加新的联系人文件中打开。

我想通过 html 页面在电话联系人列表中保存一个新联系人。 html 页面也是移动设备本地的(不在互联网上)

实际结果是 - 通过链接下载的 vcard 存储在 android 的本地下载文件夹中。用户必须手动打开文件并保存联系人。

至少如果我可以自动打开下载的 vcf 文件,那就太好了。该方法应该适用于 Android 和 iPhone。

【问题讨论】:

【参考方案1】:

所以这里有两个有用的资源:

    https://developer.android.com/training/contacts-provider/modify-data#create-an-intent - 解释如何在 Android 上通过 Intent 添加/编辑联系人 https://developer.chrome.com/multidevice/android/intents - 解释如何格式化任何 Android Intent 以从 Chrome 中显示的网页启动(请注意,它仅适用于 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 上使用,根本不认为这是可能的

【讨论】:

以上是关于如何在没有任何服务器端代码的情况下借助 HTML 在 android 和 iphone 中添加新的联系人屏幕?的主要内容,如果未能解决你的问题,请参考以下文章

我可以在没有任何服务器端代码的情况下构建一个非常简单的支持 Google Cloud Messaging 的 Android 应用程序吗?

如何在没有服务器端语言的情况下开发动态网站? [关闭]

如何在没有服务器端代码的情况下使用 Web API,只使用 Ajax

在没有 Javascript 的情况下使用 Google Analytics?

如何在没有任何类名或 ID 的情况下使用 Javascript 或 JQuery 替换 HTML 标签

如何在没有任何视图或任何其他表类型的情况下在 oracle 中创建具有动态列名和动态数据类型的动态表