在默认网络浏览器中打开 URL

新手上路,请多包涵

我是 react-native 的新手,我想在 默认浏览器中 打开 url ,比如 Android 和 iPhone 中的 Chrome。

我们通过 Android 中的意图打开 url,就像我想要实现的功能一样。

我搜索了很多次,但它会给我 Deepklinking 的结果。

原文由 Mohit Suthar 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 776
2 个回答

您应该使用 Linking

文档中的示例:

 class OpenURLButton extends React.Component {
  static propTypes = { url: React.PropTypes.string };
  handleClick = () => {
    Linking.canOpenURL(this.props.url).then(supported => {
      if (supported) {
        Linking.openURL(this.props.url);
      } else {
        console.log("Don't know how to open URI: " + this.props.url);
      }
    });
  };
  render() {
    return (
      <TouchableOpacity onPress={this.handleClick}>
        {" "}
        <View style={styles.button}>
          {" "}<Text style={styles.text}>Open {this.props.url}</Text>{" "}
        </View>
        {" "}
      </TouchableOpacity>
    );
  }
}

这是您可以在 Expo Snack 上尝试的示例:

 import React, { Component } from 'react';
import { View, StyleSheet, Button, Linking } from 'react-native';
import { Constants } from 'expo';

export default class App extends Component {
  render() {
    return (
      <View style={styles.container}>
       <Button title="Click me" onPress={ ()=>{ Linking.openURL('https://google.com')}} />
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    alignItems: 'center',
    justifyContent: 'center',
    paddingTop: Constants.statusBarHeight,
    backgroundColor: '#ecf0f1',
  },
});

原文由 RRikesh 发布,翻译遵循 CC BY-SA 4.0 许可协议

尝试这个:

 import React, { useCallback } from "react";
import { Linking } from "react-native";
OpenWEB = () => {
  Linking.openURL(url);
};

const App = () => {
  return <View onPress={() => OpenWeb}>OPEN YOUR WEB</View>;
};

希望这能解决您的问题。

原文由 samran 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题