All Projects → iou90 → React Native Autoheight Webview

iou90 / React Native Autoheight Webview

Licence: isc
An auto height webview for React Native

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to React Native Autoheight Webview

x5 webview flutter
一个基于腾讯x5引擎的webview flutter插件,简化集成,一行代码打开视频播放,暂时只支持android使用
Stars: ✭ 90 (-76.62%)
Mutual labels:  webview
Swiftwebvc
A drop-in inline browser for your Swift iOS app.
Stars: ✭ 307 (-20.26%)
Mutual labels:  webview
Customactionwebview
自定义webview长按文本弹出选项,并且点击后返回选项与所选中的文本,你的webview不再只支持系统的复制等功能了,长按web文本实现文本一键收藏、分享,就是这么简单。Demo中附带对webView的详细使用:api详解,配置详解,js多种通信方式详解。
Stars: ✭ 338 (-12.21%)
Mutual labels:  webview
Android-VimeoPlayer
Unofficial Vimeo video player library for Android.
Stars: ✭ 46 (-88.05%)
Mutual labels:  webview
Sketch Module Web View
A sketch module for creating an complex UI with a webview
Stars: ✭ 270 (-29.87%)
Mutual labels:  webview
Android Inline Youtube View
Utility library around using YouTube inside your android app.
Stars: ✭ 313 (-18.7%)
Mutual labels:  webview
WebViewJavaScriptBridge
android webview javascript bridge
Stars: ✭ 24 (-93.77%)
Mutual labels:  webview
Youtube player flutter
Flutter plugin for playing or streaming YouTube videos inline using the official iFrame Player API. Supports both Android and iOS platforms.
Stars: ✭ 366 (-4.94%)
Mutual labels:  webview
Crazydaily
[开源项目] 一款程序员日常放松的App,基于Material Design + MVP-Clean + Weex + Flutter + RxJava2 + Retrofit + Dagger2 + Glide + Okhttp + MTRVA + BRVAH + 炫酷控件 + 炫酷动画
Stars: ✭ 294 (-23.64%)
Mutual labels:  webview
Aachartcore Kotlin
📈📊⛰⛰⛰An elegant modern declarative data visualization chart framework for Android . Extremely powerful, supports line, spline, area, areaspline, column, bar, pie, scatter, angular gauges, arearange, areasplinerange, columnrange, bubble, box plot, error bars, funnel, waterfall and polar chart types.极其精美而又强大的 Android 数据可视化图表框架,支持柱状图、条形图、折线图、曲线图、折线填充图、曲线填充图、气泡图、扇形图、环形图、散点图、雷达图、混合图等各种类型的多达几十种的信息图图表,完全满足工作所需.
Stars: ✭ 332 (-13.77%)
Mutual labels:  webview
Journey
JCEF-powered cross-platform web browser
Stars: ✭ 85 (-77.92%)
Mutual labels:  webview
awesome-video-webview
Your awesome guide for a full screen webview video player on Android
Stars: ✭ 15 (-96.1%)
Mutual labels:  webview
Injuredandroid
A vulnerable Android application that shows simple examples of vulnerabilities in a ctf style.
Stars: ✭ 317 (-17.66%)
Mutual labels:  webview
webviewer-android
Simple WebView for Android
Stars: ✭ 15 (-96.1%)
Mutual labels:  webview
Electron Tabs
Simple tabs for Electron applications
Stars: ✭ 350 (-9.09%)
Mutual labels:  webview
RNApp
react native app
Stars: ✭ 43 (-88.83%)
Mutual labels:  webview
Jsqwebviewcontroller
[Deprecated] A lightweight Swift WebKit view controller for iOS
Stars: ✭ 307 (-20.26%)
Mutual labels:  webview
Miox
Modern infrastructure of complex SPA
Stars: ✭ 374 (-2.86%)
Mutual labels:  webview
Android Smartwebview
A webview integrated w/ native features to help create most advanced hybrid applications.
Stars: ✭ 357 (-7.27%)
Mutual labels:  webview
Androidfastscroll
Fast scroll for Android RecyclerView and more
Stars: ✭ 316 (-17.92%)
Mutual labels:  webview

react-native-autoheight-webview

An auto height webview for React Native, even auto width for inline html.

NPM Version NPM Downloads

versioning

npm install react-native-autoheight-webview --save (rn >= 0.60, rnw >= 10.9.0)

npm install [email protected] --save (0.57 <= rn < 0.59)

npm install [email protected] --save (0.59 <= rn < 0.60, 5.4.0 <= rnw < 10.9.0)

Read README_old for earlier version guide and please note that fixes and new features will only be included in the last version.

showcase

react-native-autoheight-webview iOS  react-native-autoheight-webview Android

usage

react-native-webview is a peer dependency and must be installed along this lib.

npm install react-native-autoheight-webview react-native-webview
import AutoHeightWebView from 'react-native-autoheight-webview'

import { Dimensions } from 'react-native'

<AutoHeightWebView
    style={{ width: Dimensions.get('window').width - 15, marginTop: 35 }}
    customScript={`document.body.style.background = 'lightyellow';`}
    customStyle={`
      * {
        font-family: 'Times New Roman';
      }
      p {
        font-size: 16px;
      }
    `}
    onSizeUpdated={size => console.log(size.height)}
    files={[{
        href: 'cssfileaddress',
        type: 'text/css',
        rel: 'stylesheet'
    }]}
    source={{ html: `<p style="font-weight: 400;font-style: normal;font-size: 21px;line-height: 1.58;letter-spacing: -.003em;">Tags are great for describing the essence of your story in a single word or phrase, but stories are rarely about a single thing. <span style="background-color: transparent !important;background-image: linear-gradient(to bottom, rgba(146, 249, 190, 1), rgba(146, 249, 190, 1));">If I pen a story about moving across the country to start a new job in a car with my husband, two cats, a dog, and a tarantula, I wouldn’t only tag the piece with “moving”. I’d also use the tags “pets”, “marriage”, “career change”, and “travel tips”.</span></p>` }}
    scalesPageToFit={true}
    viewportContent={'width=device-width, user-scalable=no'}
    /*
    other react-native-webview props
    */
  />

properties

Prop Default Type Description
style - ViewPropTypes.style The width of this component will be the width of screen by default, if there are some text selection issues on iOS, the width should be reduced more than 15 and the marginTop should be added more than 35.
customScript - PropTypes.string -
customStyle - PropTypes.string The custom css content will be added to the page's <head>.
onSizeUpdated - PropTypes.func Either updated height or width will trigger onSizeUpdated.
files - PropTypes.arrayOf(PropTypes.shape({ href: PropTypes.string, type: PropTypes.string, rel: PropTypes.string })) Using local or remote files. To add local files: Add files to android/app/src/main/assets/ (depends on baseUrl) on android; add files to web/ (depends on baseUrl) on iOS.
source - PropTypes.object BaseUrl now contained by source. 'web/' by default on iOS; 'file:///android_asset/' by default on Android or uri.
scalesPageToFit false PropTypes.bool False by default (different from react-native-webview which true by default on Android). When scalesPageToFit was enabled, it will apply the scale of the page directly.
scrollEnabledWithZoomedin false PropTypes.bool Making the webview scrollable on iOS when zoomed in even if scrollEnabled is false.
viewportContent 'width=device-width' on iOS PropTypes.string Please note that 'width=device-width' with scalesPageToFit may cause some layout issues on Android, for these conditions, using customScript prop to apply custom viewport meta.
showsVerticalScrollIndicator false PropTypes.bool False by default (different from react-native-webview).
showsHorizontalScrollIndicator false PropTypes.bool False by default (different from react-native-webview).
originWhitelist ['*'] PropTypes.arrayOf(PropTypes.string) Validate any origin by default cause of most cases using static HTML concerns.

demo

npx react-native run-ios/android

You may have to use yarn to install the dependencies of the demo and remove "demo/node_modules/react-native-autoheight-webview/demo" manually, cause of installing a local package with npm will create symlink, but there is no supporting of React Native to symlink (https://github.com/facebook/watchman/issues/105) and "yarn install" ignores "files" from local dependencies (https://github.com/yarnpkg/yarn/issues/2822). For android, you may have to copy the "Users\UserName.android\debug.keystore" to "demo/android/app/".

supporting rnahw

One-time donation via PayPal:

Donate

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].