URL Scheme(imdb:///,linkedin://)未在Android设备中启动应用

时间:2014-03-05 07:35:09

标签: android linkedin imdb

我已经测试了此方案网址(imdb:///linkedin://)应用主页无法在Android设备中启动。但是主页/指定页面应用程序方案URL在iOS中都能正常工作。

imdb:///title/tt1931435/linkedin://profile/{id})此指定的应用页面在Android设备中完美启动。

我无法理解为什么这在方案网址中有所不同?

感谢您对如何解决此问题的意见

1 个答案:

答案 0 :(得分:5)

在iOS中,您可以直接注册您的应用以打开方案。当你这样做时,无论你在imdb://之后给出什么,应用程序都会打开。您可以使用imdb://或imdb:// something

打开它

但在Android中,行为是不同的。您不只是注册该方案,您注册完整的路径或路径前缀,甚至使用正则表达式。当imdb:/// title / tt1931435 /打开IMDB应用程序时,简单的imdb://可能无法直接打开应用程序。

IMDB应用程序背后的开发人员可能希望应用程序仅从电影屏幕打开,而不是从主屏幕打开。

修改 在您发表评论后,我查找了Facebook和IMDB的AndroidManifest.xml个文件,结果如下

IMDB应用程序中的IntentFilter:

        <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="imdb" android:host="" android:pathPattern="/title/tt.*" />
        </intent-filter>

Facebook应用程序中的IntentFilter:

        <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="fb" />
        </intent-filter>

在Facebook中,只有“fb”,这意味着所有以fb://开头的网址都会打开应用。但在IMDB中,他们提供了android:pathPattern,这意味着只有符合该模式的URL才能打开应用程序。