天天看点

android实现分享url,分享 URL,然后启动安卓 APP

一、创建分享链接

分享链接就是一个普通的 HTTP 网址,然后这个网址对应的页面中,再跳转到一个指定的 URL。启动应用程序

这个 scheme、host、path、query 都我们自己约定。注意:scheme,不是 schema,虽然两个单词没多大区别。

至于如何把这个 URL 通过“手机 QQ”等方式分享给别人,可参见安卓分享。

二、APP 如何响应呢?

在 AndroidManifest.xml 中,对需要响应的 Activity 作如下配置:

android:scheme="myapp"

android:host="myhost"

android:path="/mypath">

action.VIEW、category.DEFAULT、category.BROWSABLE 都要,然后 data 中配置响应的 scheme、host、path,当然 host、path 不是必须的。

三、Activity 中取值Intent intent = getIntent();

Uri uri = intent.getData();

uri.getScheme();

uri.getHost();

uri.getPath();

uri.getQuery();

uri.getQueryParameter("queryStringKey"); // 从 QueryString 中取 queryStringKey 对应的值。

四、还没完

如果我们设置了非 standard 启动模式,而 APP 已经启动,再从浏览器中启动时,那此时就不会触发 onCreate 方法(singleTop 的话,分情况决定),同时此时 getIntent() 也是老的值。

所以:要么在 onNewIntent 中直接用 intent 值;要么在 onNewIntent 中 setIntent(intent),之后在其他地方用 getIntent()。@Override

protected void onNewIntent(Intent intent) {

super.onNewIntent(intent);

setIntent(intent);

}