J'ai une application multiplateforme développée dans Xamarin. Dans la version iOS J'utilise un schéma d'URL personnalisé pour charger une page Web spécifique dans une vue web, tels queschéma personnalisé android et chrome intention
myapp: // returnUrl = http: /google.com.au
Comme un client a peu d'autres applications chez nous, il veut garder le schéma personnalisé dans le même format. Dans l'android, j'ai trouvé qu'une telle intention peut être ouverte à partir de Firefox, mais pas par courrier électronique ou Chrome. J'ai trouvé que Chrome needs a custom intent to make it work. J'ai essayé de l'implémenter mais je n'ai pas réussi à le faire fonctionner.
Voici ma mise en œuvre manifeste:
[Activity(Label = "MyApp",
MainLauncher = true,
LaunchMode = LaunchMode.SingleTask,
ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.ScreenSize)]
[IntentFilter(new[] { Intent.ActionView },
Categories = new[] { Intent.CategoryDefault, Intent.CategoryBrowsable },
DataScheme = "myapp")]
Wich va créer un fichier manifeste suivant:
<activity android:configChanges="orientation|screenSize" android:label="MyApp" android:launchMode="singleTask" android:name="myapp.auth.droid.MainActivity">
<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="myapp" />
</intent-filter>
</activity>
j'ai essayé de saisir l'intention de Firefox et le convertir en URI dans l'application, mais l'intention suivante ne fonctionne pas à partir de Chrome (il fonctionne à partir de Firefox BTW):
myapp: //? returnUrl = http:/google. com.au # intention; action = android.intent.action.VIEW; launchFlags = 0x4400000, composante = MyApp.MyApp/myapp.auth.droid.MainActivity, fin
Est-ce que je manque quelque chose?
NOTE. Le schéma http: // peut être utilisé mais ce n'est pas une option préférée.
NOTE 2. J'utilise Nexus 5, pour Chrome, vous devez utiliser l'intention de chrome Android 4.4.4
peut y ou mettez un hôte fictif là, ou juste un slash supplémentaire, 'myapp: // dummy /? returnUrl ...' – domen