H5跳转ReactNative打开指定页面

简介: H5跳转ReactNative打开指定页面

1、需求


工作可能有这样的需求,就是手机浏览器中加载一个h5页面,点击可以打开某一个APP,比如微信等。这时候通常都是采用URL Scheme的方式进行配置跳转。

那么什么是URL Scheme呢?

简单说:它是一个页面跳转协议。

2、 URL Scheme协议


URL Scheme是一种页面内跳转协议,是一种非常好的实现机制,通过定义自己的scheme协议,可以非常方便跳转app中的各个页面;通过scheme协议,服务器可以定制化告诉App跳转那个页面,可以通过通知栏消息定制化跳转页面,可以通过H5页面跳转页面等。

苹果手机中的APP都有一个沙盒,APP就是一个信息孤岛,相互是不可以进行通信的。但是iOS的APP可以注册自己的URL Scheme,URL Scheme是为方便app之间互相调用而设计的。

URL Scheme必须能唯一标识一个APP,如果你设置的URL Scheme与别的APP的URL Scheme冲突时,你的APP不一定会被启动起来。因为当你的APP在安装的时候,系统里面已经注册了你的URL Scheme。

完整的URL Scheme格式:

stars://host:8088/pageDetail?pageId=102

1.stars:表示Scheme协议名称,可以自定义

2.host: 表示协议的跳转地址名称,通常和APP中配置的名称是一直的

3.pageDetail:表示跳转的具体页面名称

4.pageId:表示传递的参数

5.8088:通常表示跳转地址的端口名称

3、具体使用配置


Android配置

<activity
         ...
            <!--要想在别的App上能成功调起App,必须添加intent过滤器-->
            <intent-filter>
                <!--协议部分,随便设置-->
                <data
                    android:host="host"
                    android:path="/pageDetail"
                    android:port="8088"//可以不要
                    android:scheme="stars"/>
                <!--下面这几行也必须得设置-->
                <!--表示该页面可以被隐式调用,必须加上该项-->
                <category android:name="android.intent.category.DEFAULT"/>
                <action android:name="android.intent.action.VIEW"/>
                <!--如果希望该应用可以通过浏览器的连接启动,则添加该项-->
                <category android:name="android.intent.category.BROWSABLE"/>
            </intent-filter>
        </activity>

IOS配置


只需要配置info.plist 文件,只需要配置URL Schemes就可以了,identifier是可选配置

微信图片_20220609184425.png

4、注意事项


正常情况下,以上配置后,就可以正常进行跳转了,但是在安卓上,还需要进行一步配置,如果你的应用被其注册过的外部 url 调起,如果要在现有的 MainActivity 中监听传入的 intent,那么需要在AndroidManifest.xml中将 MainActivity 的launchMode设置为singleTask

<activity
  android:name=".MainActivity"
  android:launchMode="singleTask">
目录
相关文章
|
8月前
|
存储 前端开发 JavaScript
react怎么实现跨页面传参
react怎么实现跨页面传参
222 2
|
前端开发
react如何跳转页面?
react如何跳转页面?
|
8月前
|
资源调度 JavaScript 前端开发
React-Router 5.0 制作导航栏+页面参数传递
React-Router 5.0 制作导航栏+页面参数传递
62 0
|
4月前
|
前端开发 JavaScript
React项目路由懒加载lazy、Suspense,使第一次打开项目页面变快
本文介绍了在React项目中实现路由懒加载的方法,使用React提供的`lazy`和`Suspense`来优化项目首次加载的速度。通过将路由组件改为懒加载的方式,可以显著减少初始包的大小,从而加快首次加载速度。文章还展示了如何使用`Suspense`组件包裹`Switch`来实现懒加载过程中的fallback效果,并提供了使用前后的加载时间对比,说明了懒加载对性能的提升作用。
295 2
React项目路由懒加载lazy、Suspense,使第一次打开项目页面变快
|
4月前
|
前端开发 JavaScript UED
react或者vue更改用户所属组,将页面所有数据进行替换(解决问题思路)____一个按钮使得页面所有接口重新请求
在React或Vue中,若需在更改用户所属组后更新页面所有数据但不刷新整个页面,可以通过改变路由出口的key值来实现。在用户切换组成功后,更新key值,这会触发React或Vue重新渲染路由出口下的所有组件,从而请求新的数据。这种方法避免了使用`window.location.reload()`导致的页面闪烁,提供了更流畅的用户体验。
60 1
react或者vue更改用户所属组,将页面所有数据进行替换(解决问题思路)____一个按钮使得页面所有接口重新请求
|
4月前
|
前端开发
React页面跳转取消上一个页面的所有请求
React页面跳转时取消上一个页面的所有axios请求,通过axios拦截器设置cancelToken,并在页面跳转时调用cancel函数取消未完成的请求。
71 2
|
4月前
|
前端开发 JavaScript
React配合axios请求拦截校验session,403跳转至登陆页面
React中使用axios进行请求拦截,通过自定义事件监听和响应拦截实现403状态码时的自动登录页面跳转。
123 2
|
JavaScript 前端开发 虚拟化
理解React页面渲染原理,如何优化React性能?
理解React页面渲染原理,如何优化React性能?
125 0
|
8月前
|
数据采集 资源调度 前端开发
React的服务器端渲染:使用ReactDOMServer进行高效页面预渲染
【4月更文挑战第25天】使用ReactDOMServer,React支持服务器端渲染以实现高效预渲染。通过在Node.js环境中将React组件转化为HTML字符串,减少客户端JavaScript负载和渲染时间。优点包括更快首屏加载、改善SEO和兼容无JavaScript环境,但也会增加服务器负载、复杂性和状态管理挑战。开发者需根据项目需求平衡SSR和CSR。
|
前端开发
React返回上个页面
React返回上个页面
137 0