我已经测试了这个方案网址(imdb:///,linkedin://)的主页不能在安卓设备上启动。但是在iOS中,主页/指定页面应用程序URL都能正常工作。
(imdb:///title/tt1931435/,linkedin://profile/{id})这个指定的应用程序页面完美地在安卓设备上启动。
我不明白为什么方案URL有这么大的不同?
感谢您对如何解决这一问题的投入。
发布于 2014-03-05 07:50:23
在iOS中,你可以直接注册你的应用程序来打开你的程序,当你这样做的时候,不管你在imdb://之后给什么,应用程序都会打开。您可以使用imdb://或imdb://来打开它。
但在Android系统中,这种行为是不同的。您不是简单地为该方案注册,而是注册完整的路径或路径前缀,甚至使用regex。当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://开头的url都会打开应用程序。但在IMDB中,他们提供了android:pathPattern,这意味着只有符合该模式的URL才能打开应用程序。
https://stackoverflow.com/questions/22191415
复制相似问题