Android:H5、web调起App并且传递参数

1、在清单文件的Activity声明里添加:

<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="vmd" android:host="music" android:pathPrefix="/play"/>
</intent-filter>
  • scheme:判别启动的App
  • host:适当记述
  • pathPrefix:传值时必须的key ※没有也可以
  • query:获取值的Key和Value ※没有也可以 

 2、H5中调起:

<a href="[scheme]://[host]/[pathPrefix]?[query]">启动应用程序</a> 
<!--示例-->
<a href="vmd://music/play?song=kugou&id=1">启动应用程序</a>

3、Activity中接收参数:

Intent intent = getIntent();  
String action = intent.getAction();    
if(Intent.ACTION_VIEW.equals(action)){  
    Uri uri = intent.getData();  
    if(uri != null){  
        String song = uri.getQueryParameter("song");  //song值就是kugou了
        String id= uri.getQueryParameter("id");  //id就是1
        //do something
    }  
}

4、在二级页面中对返回键做处理(根据自己项目的需求决定做不做)

@Override
public void onBackPressed() {
        //NavUtils.getParentActivityIntent()方法可以获取到跳转至父Activity的Intent
        //如果父Activity和当前Activity是在同一个Task中的,则直接调用navigateUpTo()方法进行跳转
        //如果不在同一个Task中的,则需要借助TaskStackBuilder创建一个新的Task
        Intent upIntent = NavUtils.getParentActivityIntent(this);
        if (NavUtils.shouldUpRecreateTask(this, upIntent)) {
            TaskStackBuilder.create(this)
                    .addNextIntentWithParentStack(upIntent)
                    .startActivities();
        } else {
            upIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            NavUtils.navigateUpTo(this, upIntent);
        }
        super.onBackPressed();
}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值