如何在React Native(Expo)中添加应用内浏览器

问题描述 投票:-1回答:1

我想向我的应用添加应用内浏览器(可以自定义)。除了webview还有其他方法吗?最好也获得阅读器模式或简化视图选项。

react-native expo inappbrowser
1个回答
0
投票

您可以使用以下库react-native-inappbrowser

请从github页面进行安装

import { Linking } from 'react-native'
import InAppBrowser from 'react-native-inappbrowser-reborn'

...
  async openLink() {
    try {
      const url = 'https://www.google.com'
      if (await InAppBrowser.isAvailable()) {
        const result = await InAppBrowser.open(url, {
          // iOS Properties
          dismissButtonStyle: 'cancel',
          preferredBarTintColor: '#453AA4',
          preferredControlTintColor: 'white',
          readerMode: false,
          animated: true,
          modalPresentationStyle: 'overFullScreen',
          modalTransitionStyle: 'partialCurl',
          modalEnabled: true,
          // Android Properties
          showTitle: true,
          toolbarColor: '#6200EE',
          secondaryToolbarColor: 'black',
          enableUrlBarHiding: true,
          enableDefaultShare: true,
          forceCloseOnRedirection: false,
          // Specify full animation resource identifier(package:anim/name)
          // or only resource name(in case of animation bundled with app).
          animations: {
            startEnter: 'slide_in_right',
            startExit: 'slide_out_left',
            endEnter: 'slide_in_left',
            endExit: 'slide_out_right'
          },
          headers: {
            'my-custom-header': 'my custom header value'
          },
          waitForRedirectDelay: 0
        })
        Alert.alert(JSON.stringify(result))
      }
      else Linking.openURL(url)
    } catch (error) {
      Alert.alert(error.message)
    }
  }
...

您可以检查the example app here

对于博览会,它变得有点复杂,请检查相关的tutorial by Medium

如果您想在ios中阅读模式,请参考此链接

reader-mode-webview-component-for-react-native

© www.soinside.com 2019 - 2024. All rights reserved.