Google drive api URL方案:如何创建链接,在Google Drive应用程序中打开文档
我正在尝试创建一个网页,其中嵌入了几个谷歌文档。我的问题是,当在android设备上查看此页面时,用户会看到糟糕的基于web的Google文档编辑器。因此,我希望在我的页面上有一个链接,可以在用户手机上打开本机Google Drive应用程序,这样他/她就可以在那里编辑文档。搜索了两个小时后,我不知道如何创建链接,该链接会自动在本机应用程序中打开文档 我使用以下链接成功地在Google market中查看了Google Drive应用程序: market://details?id=com.google.android.apps.docs 我还尝试了 去ogledrive://no-idea-what-to-write-here 但这也没有成功Google drive api URL方案:如何创建链接,在Google Drive应用程序中打开文档,google-drive-api,hyperlink,url,Google Drive Api,Hyperlink,Url,我正在尝试创建一个网页,其中嵌入了几个谷歌文档。我的问题是,当在android设备上查看此页面时,用户会看到糟糕的基于web的Google文档编辑器。因此,我希望在我的页面上有一个链接,可以在用户手机上打开本机Google Drive应用程序,这样他/她就可以在那里编辑文档。搜索了两个小时后,我不知道如何创建链接,该链接会自动在本机应用程序中打开文档 我使用以下链接成功地在Google market中查看了Google Drive应用程序: market://details?id=com.goo
这到底是可能的,还是只在iOS上有效?似乎没有一个好方法来做你想做的事情(至少根据我对Android 4.0.4的测试,可能情况与其他版本不同) 使用应用程序截获的
http:
或https:
链接
理论上,只需使用https://docs.google.com/...
该文档的链接应该适合您。据介绍,从Android浏览器打开链接时,拦截http:
或https:
URL是启动应用程序的正确方式。Google Drive应用程序正是这样做的——它为https://drive.google.com
,https://docs.google.com
,https://spreadsheets.google.com
和一组类似的URL(包括具有相同主机名的http:)。这实际上是可行的——当使用Android股票浏览器时,试图打开指向https://drive.google.com
结果将出现选择器弹出窗口,列表中包含Google Drive应用程序(以及所有已安装的浏览器);选择Google Drive会在Google Drive编辑器中打开文档(如您所需)
但问题是,这种被截获的HTTP[S]URL只在股票Android浏览器中起作用,我还没有找到任何第三方浏览器可以在跟踪这些链接时显示应用程序选择器。我测试了Chrome、Dolphin、Firefox、Light浏览器、Opera(包括Classic和Mini)、UC浏览器,所有这些浏览器都只是在内部打开了链接,而不是提供将其传递给Google Drive应用程序
使用intent:
URI方案
还有另一种方法可以创建启动Android应用程序的链接-使用intent:
URI方案。我无法找到intent:
URI格式的适当文档;当然,这是可用的
用于:
相应的intent:
链接将在Google Drive应用程序中打开它:
intent://docs.google.com/document/d/1zSzDnV-90Ke3dzCCJ2CZ6iQ3JQ3F1hL1udGDqbNwwbY/edit?usp=sharing#Intent;scheme=https;action=android.intent.action.VIEW;category=android.intent.category.DEFAULT;category=android.intent.category.BROWSABLE;package=com.google.android.apps.docs;end
具有此URI的测试链接为(此处不可能创建指向此URI的实际链接)
转换过程如下:
https:
替换为intent:
#Intent;scheme=https;action=android.intent.action.VIEW;category=android.intent.category.DEFAULT;category=android.intent.category.BROWSABLE;package=com.google.android.apps.docs;end
此处的scheme=https
对应于原始URL中的https:
,因此,如果要转换普通http:
URL,此字段应为scheme=http
。而package=com.google.android.apps.docs
是应该处理链接的应用程序的包名包的情况下创建意图:
链接
参数:
intent://docs.google.com/document/d/1zSzDnV-90Ke3dzCCJ2CZ6iQ3JQ3F1hL1udGDqbNwwbY/edit?usp=sharing#Intent;scheme=https;action=android.intent.action.VIEW;category=android.intent.category.DEFAULT;category=android.intent.category.BROWSABLE;end
在这种情况下,行为应与在股票Android浏览器中遵循截获的https:
链接时相同-将显示带有Google Drive应用程序和所有浏览器应用程序的应用程序选择器,如果未安装Google Drive应用程序,则不会重定向用户从市场安装它
与拦截的http:
和https:
链接不同,intent:
链接适用于范围更广的Android浏览器应用程序;不幸的是,有些浏览器不支持它们。我的测试结果:
- 作品:股票安卓4.0.4浏览器,铬,轻浏览器,歌剧,歌剧经典
- 不工作:Dolphin、Firefox()、UC浏览器
出于安全考虑,一些浏览器还可能不允许非标准URI方案,但一些列入白名单的方案除外(如
市场:
);我没有尝试测试这个。我认为Google Drive会自动处理以.doc、.xls、.pdf等结尾的链接。。。没有必要在链接的开头添加googledrive:。@Shywim感谢您的回答。我已经尝试过了,但我无法让任何谷歌文档的url以.doc结尾。下面是一个失败尝试的示例:在我的android上打开该链接不会在Google Drive应用程序中打开该文档使用stock android 4.0浏览器时,打开链接会显示一个选择器弹出窗口,除了所有已安装的浏览器外,还提供Google Drive应用程序。然而,我尝试过的任何其他第三方浏览器(Chrome、Dolphin、F
intent://docs.google.com/document/d/1zSzDnV-90Ke3dzCCJ2CZ6iQ3JQ3F1hL1udGDqbNwwbY/edit?usp=sharing#Intent;scheme=https;action=android.intent.action.VIEW;category=android.intent.category.DEFAULT;category=android.intent.category.BROWSABLE;end