【问题标题】:How to test custom URL scheme in android如何在android中测试自定义URL方案
【发布时间】:2015-10-30 19:07:03
【问题描述】:

我正在开发需要自定义 URL 方案的应用,看起来像“appname://”

我搜索了很多东西,也找到了很多相关的问题,但我仍然遇到问题。

如何从浏览器测试这个 URL Scheme?目前,每当我在浏览器的地址栏中输入“appname://”时,它都会直接进入 Google 搜索。

我的 AndroidManifest.xml 中有这个:

<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:scheme="appname"
             android:host="appnamehost"/>
</intent-filter>

【问题讨论】:

    标签: android url-scheme


    【解决方案1】:

    通过 adb 很容易。检查此命令:

    adb shell am start -a android.intent.action.VIEW -d "appname://appnamehost" your.package.name
    

    但是,您应该使用您的包名作为架构。因此,您可以绝对确定没有冲突(或者详细地说是意图选择器)。

    如果您有多个设备,则需要执行adb devices。这将产生如下输出:

    List of devices attached
    1645e1d0b86b    device
    S9WM00904386    device
    

    然后,您可以使用上面的 id 来使用 -s 参数来寻址具体设备。这将产生如下命令行:

    adb -s S9WM00904386 shell [...]
    

    如果是浏览器链接,这也很容易。你只需要添加这行html:

    <a href="appname://appnamehost">Click me</a>
    

    如果你想在你的 url 中使用后备,你可以试试 Intent url:

    <a href="intent://apphostname#Intent;scheme=appname;package=your.package.name;S.browser_fallback_url=http%3A%2F%2Fwww.example.com;end">with alternative</a>
    

    即使您的架构不是唯一的,这也会打开您的应用,如果您的应用未安装,它将打开 example.com。

    【讨论】:

    • 感谢 Rekine 的回答,我真的很感激......我知道如何通过命令行测试它,我已经这样做并且工作正常,我需要知道我是否可以直接从浏览器测试它, 另外你对自定义方案名称是正确的,我只是在这里提供了示例,真正的方案是我的包 id :),如果你知道如何直接在浏览器上测试它,请告诉我。
    • 甚至,通过命令行,它适用于果冻豆,但不适用于棒棒糖
    • 我可以在哪里添加这个 href 行?如果你能在这里贴一些代码sn-p就更好了。
    • 谢谢 Rekire,通过从 jsfiddle 制作 html 并在移动浏览器上运行,它工作正常。 :)
    • 我可以获得 JSfiddle 的链接吗?我在 cmets 中没有看到它。
    猜你喜欢
    • 2011-04-30
    • 2011-12-14
    • 1970-01-01
    • 1970-01-01
    • 2016-01-30
    • 1970-01-01
    • 2014-08-25
    • 1970-01-01
    • 2014-04-02
    相关资源
    最近更新 更多