澳门新葡萄京娱乐场 1

澳门新葡萄京娱乐场Android 使用URL链接打开App

朝气蓬勃、创设分享链接

澳门新葡萄京娱乐场 1

点击网页中的ULX570L链接,张开手提式有线电话机中曾经存在的Android应用。

分享链接便是叁个平凡的 HTTP
网站,然后这一个网址对应的页面中,再跳转到三个钦命的 ULX570L。


网页中URL格式:

<a href=”scheme://host/path?query”>运营应用程序</a>

贯彻一下浏览器通过通过UENVISIONL展开钦点的应用程式功效。

  1、安卓设备已安装APP,打开App并跳到钦定的的页面。
  2、安卓设备未安装应用程式,跳转到下载页下载。

<a
href=”[scheme]://[host]/[path]?[query]”>打开app</a>

其黄金时代 scheme、host、path、query 都大家协和约定。注意:scheme,不是
schema,即便多个单词没多大差别。

实现步骤:

1、在AndroidManifest.xml
文件中,找到浏览器意图跳转的的Activity视图对应的<activity
/>标签,在标签下加<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:scleme=”myApp”
    android:host=”127.0.0.1:8080″
    pathPerfix=”/openwith”
   />
</intent-filter>

2、HTML链接中运用格式:[scheme]://[host]/[path]?[query] 。
   scheme:判定运转的App。
   host:相仿于标志,(可以不选取)
   path:传值是必得的Key,对应安卓中pathPrefix (能够不接收)
   query:参数列,可以不使用。
示例:

<a
href=”myapp://jp.app/openwith?name=zhangsan&age=26″>打开App</a>

2、获取参数

//链接中取值取值
Intent i_getvalue = getIntent();
String action = i_getvalue.getAction();
if(Intent.ACTION_VIEW.equals(action)){
  Uri uri = i_getvalue.getData();
  if(uri != null){
     String name = uri.getQueryParameter(“name”);
     String age= uri.getQueryParameter(“age”);
    textView.setText(“地址:”+uri.toString()+”n姓名”+name+”t年龄”+age);
   }
}

例:<a href=”cbg://android.apk/”>打开app</a>

关于何以把这一个 UENVISIONL 通过“手机QQ”等方法分享给别人,可参见安卓分享。

留意:一些特意的浏览器是不能够兑现U揽胜L打开App

scheme:启动app的标识,必须有;

二、APP 如何响应呢?

host:有无不影响运维;

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

path:有无不影响运行;

<activity android:name=”.Main2Activity”> <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” android:host=”myhost”
android:path=”/mypath”></data> </intent-filter>
</activity>

query:获取值的key和value,有无不影响运维。

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

Android端,在AndroidManifest.xml中的MainActivity的注册新闻中增加如下代码

三、Activity 中取值

<intent-filter>

Intent intent = getIntent(卡塔尔; Uri uri = intent.getData(State of Qatar;
uri.getScheme(卡塔尔; uri.getHost(卡塔尔国; uri.getPath(卡塔尔国; uri.getQuery(State of Qatar;
uri.getQueryParameter(“queryStringKey”卡塔尔; // 从 QueryString 中取
queryStringKey 对应的值。

          <action android:name=”android.intent.action.VIEW”/>

四、还没完

          <category
android:name=”android.intent.category.DEFAULT”/>

假若大家设置了非 standard
起步方式,而 APP已经起步,再从浏览器中运维时,那那个时候就不会触发 onCreate 方法(singleTop
的话,分意况决定),同时那时候 getIntent(卡塔尔国 也是老的值。

          <category
android:name=”android.intent.category.BROWSABLE”/>

由此:要么在 onNewIntent 中平素用 intent 值;要么在 onNewIntent 中
setIntent(intent卡塔尔国,之后在另内地方用 getIntent(卡塔尔。

         <data

@Override protected void onNewIntent(Intent intent) {
super.onNewIntent(intent); setIntent(intent); }

                    android:scheme=”cbg” 

 

                    android:host=”android”/>

</intent-filter>

:新加上的<intent-filter>的内容不可也原有的<intent-filter>的剧情混合在三个<intent-filter>中,要选择四个<intent-filter>。

数据传递:

使用U哈弗L增添参数的法门

如:<a
href=”cbg://android.apk/login?page=0&num=1″>打开app</a>

Android端获取数据

Intent intent = getIntent();

String page,num;

Uri uri = intent.getData();

if(uri!=null){

      page=uri.getQueryParameter(“page”);

      num=uri.getQueryParameter(“num”)

}

相关链接:

http://stackoverflow.com/questions/3469908/make-a-link-in-the-android-browser-start-up-my-app

http://stackoverflow.com/questions/2958701/launch-custom-android-application-from-android-browser

发表评论

电子邮件地址不会被公开。 必填项已用*标注