我已经测试了这个方案URL(imdb:///
,linkedin://
)应用程序主页无法在Android设备中启动。但主页/指定页面应用程序方案URL在iOS中都可以正常工作。
(imdb:///title/tt1931435/
,linkedin://profile/{id}
)此指定的应用程序页面在Android设备中完美启动。
我不明白为什么这个不同的方案URL?
感谢您对如何解决此的意见
在iOS中,您可以直接注册应用程序以打开方案。当你这样做时,无论你在imdb://之后给出什么,应用程序都会打开。您可以使用imdb://或imdb://something
但在安卓系统中,情况有所不同。您不只是注册该方案,而是注册完整的路径或路径前缀,甚至使用regex。什么时候imdb:///title/tt1931435/打开IMDB应用程序,简单的IMDB://可能不会直接打开该应用程序。
IMDB应用程序背后的开发人员可能希望该应用程序只能在电影屏幕上打开,而不能在主屏幕上打开。
编辑:在您发表评论后,我查找了Facebook和IMDB的AndroidManifest.xml
文件,结果如下
IntentFilter在IMDB中的应用:
<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>
IntentFilter在Facebook应用程序:
<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://开头的url都将打开该应用程序。但在IMDB中,他们提供了android:pathPattern
,这意味着只有符合该模式的URL才能打开应用程序。