1. 在浏览器打开链接
import {Linking} from 'react-native'
......
if(Linking.canOpenURL(url)){
	Linking.openURL(url)
}

内置URL方案

方案 描述
mailto:support@expo.io 打开邮件应用
tel:10086 打开手机应用
sms:10086 打开短信应用
http://expo.io 或 https://expo.io 打开浏览器

Linking提供了一个通用的接口来与预期和传出的App链接进行交互。
每个链接(URL)都有一个URL方案,某些网站以https://或为前缀,http://并且http是URL方案。我们简称为“方案”。

  1. 在APP里打开链接

使用WebView组件

WebView 创建一个原生的WebView,可以用于访问一个网页。
<WebView source={{uri: 'https://github.com/facebook/react-native'}} />
还可以直接嵌入html代码:
<WebView originWhitelist={['*']} source={{ html: '<h1>Hello world</h1>' }} />

有时候我们通常会在APP里自定义一个头部组件进行后退页面和刷新操作,对于website可以通过ref属性获取当前组件,获得webview组件后,可以执行后退页面和刷新等其他操作了:

<WebView
     source={{uri: 'https://github.com/facebook/react-native'}}
     onNavigationStateChange={navState => {  // 当导航状态发生变化的时候调用
           this.canGoBack = navState.canGoBack;
     }}
     ref={ref => this.webview =  ref } // 将该组件赋值给webview
/>
...
if(this.canGoBack){   // 如果网页可后退,则执行后退操作,如果不能再后退,则执行APP里页面的后退
	this.webview.goBack();
}else{
	...
}

这种时候,直接通过this.webview就可以得到这个组件。

**注意:
1.项目中组件常常是多层嵌套,一直要获取到webview那一层才能执行goBack方法,而嵌套过程中的那些组件都要使用ref属性。
2.webview 在安卓上HTML内容默认为白色
**

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐