【问题标题】:Android create myApp:// protocol that will launch my app [duplicate]Android创建将启动我的应用程序的myApp://协议[重复]
【发布时间】:2013-06-18 21:24:12
【问题描述】:

我在Waze - GPS Navigation 等应用程序中看到,Facebook 应用程序有一个协议,当用户浏览 waze:// 网站时,它会打开具有给定位置的 Waze 应用程序。

例如:

当我在手机中安装了 Waze 并且我正在上网时:

waze://?ll=<lat>,<lon>

Waze 应用程序将自动打开并将我的地图居中到纬度、纬度位置。

如何为我自己的应用程序创建和注册一个协议,该协议将使用像

这样的语法
`myApp://command` 

并会使用给定的参数打开我的应用程序?

【问题讨论】:

  • 就注册自定义意图而言,请参阅openintents.org
  • @CommonsWare - 是否可以创建一个模式,以防用户没有应用程序,它将发送给他在 Google 的市场上下载?
  • 如果您希望您的应用程序与其他应用程序兼容,您还应该查看openintents-uris。除了@EdwardFalk-s 评论,该站点还定义了 uri schema 。已经有“geo:”和“google.navigation:ll=latitude,longitude”的uris

标签: android


【解决方案1】:

是否可以创建一个模式,以防用户没有应用程序将发送给他以在 Google 的市场上下载?

没有。

欢迎您使用 HTTP URL 作为您的“自定义协议”:

        <intent-filter>
            <action android:name="android.intent.action.VIEW"/>

            <category android:name="android.intent.category.DEFAULT"/>
            <category android:name="android.intent.category.BROWSABLE"/>

            <data
                android:host="www.this-so-does-not-exist.com"
                android:path="/something"
                android:scheme="http"/>
        </intent-filter>

&lt;intent-filter&gt; 将匹配http://www.this-so-does-not-exist.com/something。如果您的应用未安装,用户将在 Web 浏览器中查看。但是,如果您的应用已安装,用户可能仍会选择在 Web 浏览器中查看此内容,而不是从选择器中选择您的应用。

【讨论】:

    猜你喜欢
    • 2016-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多