gpt4 book ai didi

google-drive-api - URL Scheme : How can I create a link, 这将在 Google Drive 应用程序中打开一个文档

转载 作者:行者123 更新时间:2023-12-04 17:22:45 24 4
gpt4 key购买 nike

我正在尝试创建一个网页,其中嵌入了几个 Google 文档。我的问题是,当在 android 设备上查看此页面时,用户会看到基于 Web 的糟糕的 Google Docs 编辑器。因此,我希望在我的页面上有一个链接,它可以在用户手机上打开 native Google Drive 应用程序,以便他/她可以在那里编辑文档。搜索了两个小时后,我无法弄清楚如何制作链接,它会在 native 应用程序中自动打开文档。

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

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



我也尝试过

googledrive://no-idea-what-to-write-here



但这也没有成功。

这是可能的,还是仅适用于 iOS?

最佳答案

似乎没有什么好的方法可以做你想做的事(至少根据我对 Android 4.0.4 的测试;也许其他版本的情况有所不同)。

使用 http:https:应用程序拦截的链接

理论上,只需使用 https://docs.google.com/...该文档的链接应该适合您。根据 this answer on StackOverflow ,拦截http:https:从 Android 浏览器打开链接时,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 Browser、Opera(包括 Classic 和 Mini)、UC 浏览器,所有这些都只是在内部打开链接,而不是提供将其传递给 Google Drive 应用程序。

使用 intent: URI方案

还有另一种方法可以创建启动 Android 应用程序的链接 - 使用 intent: URI 方案。我找不到 intent: 的正确文档URI 格式;当然,source code for the function which generates such URIs可用。

对于 your test document :

https://docs.google.com/document/d/1zSzDnV-90Ke3dzCCJ2CZ6iQ3JQ3F1hL1udGDqbNwwbY/edit?usp=sharing

对应的 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 的测试链接是 on a separate page (这里不可能建立指向此类 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对应https:在原始 URL 中,所以如果你想转换一个普通的 http: URL,此字段应为 scheme=http .和 package=com.google.android.apps.docs是应该处理链接的应用程序的包名称。

  • 现在,当点击此类链接时,浏览器应直接打开 Google Drive 应用程序(不显示应用程序选择器)。但是,如果未安装该应用程序,Android 将改为打开 Market 应用程序,并搜索指定的包名称,以便用户可以安装所需的应用程序。

    也可以制作 intent:没有 package 的链接范围:
    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

    在这种情况下,行为应该与拦截 https: 时的行为相同。链接在原始 Android 浏览器中 - 带有 Google Drive 应用程序和所有浏览器应用程序的应用程序选择器将显示,如果未安装 Google Drive 应用程序,用户将不会被重定向到从电子市场安装它。

    不像截获 http:https:链接, intent:链接适用于更广泛的 Android 浏览器应用程序;不幸的是,有些浏览器不支持它们。我的测试结果:
  • 作品:库存 Android 4.0.4 浏览器、Chrome、Light Browser、Opera、Opera Classic。
  • 不起作用:Dolphin、Firefox ( feature request is pending )、UC 浏览器。

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

    使用自定义 URI 方案

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

    出于安全考虑,某些浏览器还可能禁止非标准 URI 方案,除了一些列入白名单的方案(例如 market: );我没有尝试对此进行测试。

    关于google-drive-api - URL Scheme : How can I create a link, 这将在 Google Drive 应用程序中打开一个文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17709556/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com