[RN]打开website
在浏览器打开链接import {Linking} from 'react-native'......if(Linking.canOpenURL(url)){Linking.openURL(url)}在APP里打开链接Navigation.openURL(url)Linking提供了一个通用的接口来与预期和传出的App链接进行交互。每个链接(URL)都有一个URL方案,某些网站以https://或为
- 在浏览器打开链接
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方案。我们简称为“方案”。
- 在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内容默认为白色
**
更多推荐
所有评论(0)