Google drive api URL方案:如何创建链接,在Google Drive应用程序中打开文档

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

我正在尝试创建一个网页,其中嵌入了几个谷歌文档。我的问题是,当在android设备上查看此页面时,用户会看到糟糕的基于web的Google文档编辑器。因此,我希望在我的页面上有一个链接,可以在用户手机上打开本机Google Drive应用程序,这样他/她就可以在那里编辑文档。搜索了两个小时后,我不知道如何创建链接,该链接会自动在本机应用程序中打开文档

我使用以下链接成功地在Google market中查看了Google Drive应用程序:

market://details?id=com.google.android.apps.docs

我还尝试了

去ogledrive://no-idea-what-to-write-here

但这也没有成功


这到底是可能的,还是只在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
    是应该处理链接的应用程序的包名

  • 现在,当遵循这样的链接时,浏览器应该直接打开Google Drive应用程序(不显示应用程序选择器)。但是,如果没有安装应用程序,Android将打开Market应用程序,并搜索指定的软件包名称,以便用户可以安装所需的应用程序

    也可以在不使用
    包的情况下创建
    意图:
    链接
    参数:

    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浏览器
    而且,显然,非Android浏览器根本不支持此类链接,因此如果您的页面也必须可用于其他客户端,则需要使用某种浏览器嗅探

    使用自定义URI方案 一些应用程序使用完全非标准的URI方案,这也可能在第三方浏览器中工作。但是,Google Drive应用程序不这样做,因此此解决方案不适合它(除非有人创建了一个“桥接”应用程序,该应用程序只将请求传递给Google Drive应用程序)


    出于安全考虑,一些浏览器还可能不允许非标准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