美文网首页
Web跳转到app指定页面并传值

Web跳转到app指定页面并传值

作者: 白日梦__ | 来源:发表于2017-05-23 11:24 被阅读3141次

在manifest文件中申明scheme和parentActivity

<activity android:name=".SecondActivity"
            android:parentActivityName=".MainActivity">
            <!--申明parentActivity,用户按返回键后返回主页面-->
            <!--在Android 4.1版本之后,可以直接使用android:parentActivityName这个属性来进行指定-->
            <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value=".MainActivity" />
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />

                <!--下面所设置的值需要和html端对调-->
                <!--在data里设置了 scheme和host,则该Activity可以接收和处理类似于 "share://article/XXX"的链接-->
                <data
                    android:host="article"
                    android:scheme="share"
                    android:pathPrefix="/attr" />
            </intent-filter>
</activity>

h5跳转

<a href="[scheme]://[host]/[path]?[query]">启动应用程序</a> 
示例
<a href="share://article/attr?name=zhangsan&age=26">启动应用程序</a>  

scheme:判别启动的App
host:适当记述
path:传值时必须的key ※没有也可以
query:获取值的Key和Value ※没有也可以

activity中获取传递过来的参数

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");  
    }  
}

在二级页面中对返回键做处理

由于是网页打开的app指定二级页面,activity栈中只存在SecondActivity这一个activity,所以当点击返回按钮的时候,会直接退出当前app。我们希望按返回的时候,回到MainActivity,所以这里需要处理一下

@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();
}

相关文章

  • Web跳转到app指定页面并传值

    在manifest文件中申明scheme和parentActivity h5跳转 scheme:判别启动的Apph...

  • APP跳转到指定APP(传值)

    有时候在app中,我们需要跳转到另一个app (一般都是我们开发的另一个app)。假设一个场景,从A跳转到B在A中...

  • 微信小程序几种常用的跳转方式并传值

    第一种:通过链接传值(跳转页面传值) 第二种:跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面 第...

  • iOS js与WKWebView交互

    1.浏览web页面,点击某个方法,并传值给oc原生,原生界面做出响应. 2.浏览web页面,传递值给js界面,js...

  • swift 闭包传值

    场景:A页面跳转到B页面,B页面返回到A页面,(B页面给A页面传值) B页面逻辑:创建block,声明变量,传值 ...

  • swift 代理传值

    场景:A页面跳转到B页面,B页面返回到A页面,(B页面给A页面传值) B页面逻辑:创建协议,声明变量,传值 A页面...

  • Android/iOS webview Js 交互

    最近调试一个活动页面,需要app和web端传值。这里iOS讨论的是WKWebView URL传值 最开始我们使用了...

  • iOS Android 通过 html 传参数跳转 app

    iOS Android 通过 html 传参数跳转 app 并打开指定页面 完美, iOS 9 以下 不会弹出...

  • iOS传值

    A页面跳转到B页面,B页面向A页面传值。 Delegate A 页面 B页面 Block A页面 B页面 Noti...

  • 打开并跳转到京东app指定页面

    info里面配置它的 schemes 为对应app的如:openapp.jdMobile.LSAppli...

网友评论

      本文标题:Web跳转到app指定页面并传值

      本文链接:https://www.haomeiwen.com/subject/ivuwxxtx.html