如何从网站链接打开原生iOS应用(日历、备忘录等)?

20

是否可以从网站中的HTML链接打开本机iOS应用程序,例如日历或笔记?我尝试找到一个例子,但我找不到。我遇到了这些URL方案,但我不知道如何使用它们以及日历或笔记的URL方案是什么。是否可以像这样做:

<a href="calendar://something here?">Click me!</a> 

是否只用 HTML 就可以实现,还是需要 JavaScript?

3个回答

16
如果您正在寻找URL Schema,则iPhone Calendar是:CALSHOW:

4
谢谢!对于任何寻找的人,提醒应用程序是 x-apple-reminder:// - Dermot

8

3
对于相关的官方文档,我给予一个加一的赞成,但后来者应该看看@Cro在下面提供的不被支持但可行的方案。 (说明:此句话是回复某个讨论帖子中的评论,建议后续读者查看另一位用户@Cro在下方提供的经验做法) - mklement0

7

是的,你完全可以这样做。你的链接放置方式是正确的:

<a href="calendar://">点击我!</a>

现在打开你的iOS应用程序的info.plist文件,在其中添加以下标签:

<key>CFBundleURLTypes</key>
<array>
<dict>
    <key>CFBundleURLName</key>
    <string>com.companyname.appname</string>
    <key>CFBundleURLSchemes</key>
    <array>
        <string>calendar</string>
    </array>
</dict>
</array>

保存plist文件并退出。此后,在您的iOS设备的Safari浏览器中打开网页并单击链接时,您的iOS应用程序将被调用。 希望这可以帮助您!


1
谢谢你的帮助!如果我没有自己的应用程序怎么办?如果我只是创建一个网页,并且想要一个链接,可以在用户的iPhone或iPad上打开他们的日历。 - nqw1
1
很遗憾,这种技术不可能实现,因为将上述密钥插入要调用的应用程序的info.plist文件是不可能的(因为日历是默认的iPhone应用程序)。您需要钩取日历应用程序,但很遗憾我不知道如何操作。 - Dip Dhingani
教程非常完美。我希望你只使用 iPhone 模拟器的 Safari 浏览器测试,而不是其他浏览器,因为这在桌面浏览器中无法工作。如果您使用模拟器的浏览器,则我认为它应该可以正常工作。 - Dip Dhingani
我找到了这个链接,但似乎本地日历应用程序没有其自己的自定义URL scheme。它不适用于日历scheme,因此是否有其他scheme可供使用?或者有没有一些好的解决方法来调用日历? - nqw1
@DipDhingani 感谢您提供这篇信息丰富的文章。我有一个额外的问题 - 如果用户没有安装该应用程序,但该应用程序在应用商店中,会发生什么情况?它会将用户重定向到应用商店还是无法加载?我刚刚尝试了一下我的未发布应用程序。它运行得很好,但如果应用程序被卸载,则会失败。如果苹果不自动将其发送到应用商店,有什么好的解决方法来避免失败?谢谢! - Sunnyside Productions
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接