我已经测试了此方案网址(imdb:///
,linkedin://
)应用主页无法在Android设备中启动。但是主页/指定页面应用程序方案URL在iOS中都能正常工作。
(imdb:///title/tt1931435/
,linkedin://profile/{id}
)此指定的应用页面在Android设备中完美启动。
我无法理解为什么这在方案网址中有所不同?
感谢您对如何解决此问题的意见
答案 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才能打开应用程序。