Pour certains projets relativement importants, il peut y avoir d'autres entrées APP dans l'entreprise. Généralement divisé en deux types: 1. Le SDK d'un ami est embarqué dans le projet (le SDK qui intègre une partie de l'entreprise) 2. Le SDK de l'ami qui est réveillé (principalement l'application installée), parlons de se réveiller aujourd'hui.
1. Utilisez Intent pour vous réveiller par nom et type de package:
La classe APP évoquée est configurée dans manifest.xml:
<activity android: name = ". MyTestActivity1" android: exports = "true" > <intent-filter> <action android: name = "android.intent.action.MAIN" /> <action android: name = "android.intent .action.VIEW "/> <category android: name =" android.intent.category.LAUNCHER "/> </intent-filter> </activity>
Début du réveil: com.example.myapplication1 est le nom du package, com.example.myapplication1.MyTestActivity1 est le nom du package. Nom de la classe
Intent intent = new Intent (); intent.setComponent (new ComponentName ("com.example.myapplication1", "com.example.myapplication1.MyTestActivity1")); intent.addFlags (Intent.FLAG_ACTIVITY_NEW_TASK); startActivity (intention);
2. Utilisez Uri pour vous réveiller via l'intention:
<activity android: name = ". TestActivity3" android: exports = "true" > <intent-filter> <action android: name = "test.action" /> <category android: name = "android.intent.category.DEFAULT "/> <data android: host =" test.uri.activity " android: scheme =" app "/> </intent-filter> </activity>
Commencez:
Uri uri = Uri.parse ("app: //test.uri.activity? Id = 1"); Intent intent2 = new Intent ("test.action"); intent2.setData (uri); startActivity (intent2);
La page éveillée obtient les paramètres passés par Uri:
if (null! = intent ) { Uri uri = intent.getData (); if (uri == null) { return; } String TAG = "TAG"; if (uri! = null) { // 完整 的 url 信息 String url = uri.toString (); Log.e (TAG, "url:" + url); // schéma 部分 String schéma = uri.getScheme (); Log.e (TAG, "schéma:" + schéma); // hôte 部分 String host = uri.getHost (); Log.e (TAG, "hôte:" + hôte); Données de chaîne = uri.getQueryParameter ("id"); Toast.makeText (ceci, données, Toast.LENGTH_SHORT) .show (); } }
3. Réveillez-vous à partir du navigateur Web H5:
1. Commencez par écrire un petit projet Web, ayez simplement une page Web comme indiqué dans la figure ci-dessous et déployez-la sur tomcat:
Ouvrez ce lien sur le navigateur est:
Nous devons ouvrir ce lien dans le navigateur du téléphone mobile, et cela ressemble à ceci
2. Configuration:
<activity android: name = ". TestActivity4" android: exports = "true" > <intent-filter> <action android: name = "android.intent.action.VIEW" /> <category android: name = "android.intent .category.DEFAULT "/> <catégorie android: name =" android.intent.category.BROWSABLE "/> <data android: scheme =" app "android: host =" test.my.app "android: pathPrefix =" / chemin "/> </intent-filter> </activity>
Une fois la configuration terminée, cliquez sur "" cliquez sur moi ... "" sur la page chargée par le navigateur mobile pour vous réveiller.
Correspondant à cette page pour obtenir les paramètres:
String TAG = "TAG"; Uri uri = getIntent (). GetData (); if (uri! = Null) { // Informations complètes sur l'url String url = uri.toString (); Log.e (TAG, "url:" + url); // partie du schéma String schéma = uri.getScheme (); Log.e (TAG, "schéma:" + schéma); // partie hôte String host = uri.getHost (); Log.e (TAG, "host:" + host); // partie du port // int port = uri.getPort (); // Log.e (TAG, "host:" + port); // Access Road King String path = uri. getPath (); Log.e (TAG, "chemin:"+ chemin); List <String> pathSegments = uri.getPathSegments (); // Query part String query = uri.getQuery (); Log.e (TAG, "query:" + query); // Obtient la valeur de paramètre spécifiée String goodsId = uri . getQueryParameter ("query1"); Log.e (TAG, "query1:" + goodsId)
Remarque: 1. schéma, hôte, chemin sont tous en minuscules
2. schéma ne pas utiliser http ou https