principio analítico
En cuanto a la plataforma Android, URI divide en tres partes:
esquema, la autoridad, el recorrido de
las cuales la autoridad se divide en host y el puerto. Formato es el siguiente:
<scheme>://<host>:<port>[<path>|<pathPrefix>|<pathPattern>]
En correspondencia con el manifiesto <data>
configurado de la siguiente manera:
<data android:host=""
android:mimeType=""
android:path=""
android:pathPattern=""
android:pathPrefix=""
android:port=""
android:scheme=""
android:ssp=""
android:sspPattern=""
android:sspPrefix=""/>
Donde el esquema es ser parámetros, si no se especifica, otros atributos que son! Inválida
Si no se especifica el host, el puerto, la ruta, Pathprefix, pathPattern no son válidos!
Nuestra utilizado más comúnmente scheme
, host
, port
, path
cuatro configuraciones.
implementación
En primer lugar, AndroidManifest
en MainActivity
la adición de uno <intent-filter>
:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="protocol" android:host="domain" android:pathPrefix="/link" />
</intent-filter>
A continuación, agregue un enlace en su página web:
<a href="protocol://domain/link>打开app</a>
Por último, haga clic en un enlace, si la aplicación es expulsado con éxito, entonces felicitaciones, usted tuvo éxito.
expandir
Abre la aplicación puede no ser lo suficientemente ligero, a veces tenemos que la transferencia de datos, la forma de pasar los datos a ella?
Podemos utilizar el método anterior, algunos datos a la aplicación, a continuación, vincular a cambiarlo:
<a href="protocol://domain/link?id=123>打开app并传递id</a>
A continuación, agregue el código en el método MainActivity onCreate en la aplicación:
Uri uri = getIntent().getData();
String id= uri.getQueryParameter("id");
Esto permite que la transferencia de datos!
Si la vista web dentro de la aplicación, las operaciones de adquisición de datos de:
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Uri uri=Uri.parse(url);
if(uri.getScheme().equals("protocol")&&uri.getHost().equals("domain")){
String id = uri.getQueryParameter("id");
}else{
view.loadUrl(url);
}
return true;
}
});
API
getScheme(); //获得Scheme名称
getDataString(); //获得Uri全部路径
getHost(); //获得host
Una el API oficial uri enlace
https: //developer.android.com ...