谁能指导我如何从android浏览器启动我的android应用程序?


当前回答

你需要添加一个伪主机名到CALLBACK_URL 'app://'作为URL没有意义,不能被解析。

其他回答

Felix处理深度链接的方法是处理深度链接的典型方法。我还建议您查看这个库来处理深层链接的路由和解析:

https://github.com/airbnb/DeepLinkDispatch

您可以使用注释为特定的深链接URI注册Activity,它将为您提取参数,而不必执行获取路径段、匹配它等通常的繁琐操作。你可以像这样简单地注释和活动:

@DeepLink("somePath/{someParameter1}/{someParameter2}")
public class MainActivity extends Activity {
   ...
}

你需要添加一个伪主机名到CALLBACK_URL 'app://'作为URL没有意义,不能被解析。

还应该有<category android:name="android.intent.category. browsable "/>添加到intent过滤器中,以便从链接中正确识别活动。

请注意,如果你的图标从android启动器中消失,当你实现这个功能,那么你必须分割意图过滤器。

    <activity
        android:name=".MainActivity"
        android:label="@string/app_name" >
        <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="your-own-uri" />
        </intent-filter>
    </activity>

在我的例子中,我必须为<intent-filter>设置两个类别,然后它就工作了:

<intent-filter>
<data android:scheme="my.special.scheme" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
</intent-filter>