使用自定义URL方案打开Android App

时间:2015-11-18 17:34:54

标签: android sms chromium

这个问题已经以类似的方式被问了一百次,但我仍然找不到合适的答案让我的应用程序以我想要的方式工作。也许这是不可能的,当然这是一个有效的答案。

我的应用程序中定义了如下活动:

    <activity
        android:name="MyActivity"
        android:label="MyActivityLabel"
        android:launchMode="singleTask" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <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="MyActivityCustomUrlScheme" />
        </intent-filter>
    </activity>

当我在模拟器中启动我的应用程序,然后打开浏览器并键入以下URL:

MyActivityCustomUrlScheme://mycustomHost.com?someOptions

唯一发生的事情就是Chrome尝试使用谷歌搜索,这不是我想要的。如果我使用此方案向自己发送短信,则内部方案不会被识别,也不会被点击:(

我想这样做,因为我已经在商店中有一个iOS应用程序,它使用MyActivityCustomUrlScheme://mycustomHost.com?someOptions方案,因为用户得到这个,所以在任何地方改变它都会有很多榛子网址通过电子邮件或短信发送。如果有人可以帮我解决这个问题,我真的很感激。

1 个答案:

答案 0 :(得分:0)

尝试使用host的定义:

    <activity android:name="MyActivity" 
            android:label="MyActivityLabel" 
            android:launchMode="singleTask">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <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="MyActivityCustomUrlScheme" android:host="mycustomHost.com" />
            </intent-filter>
    </activity>