react-universal-canvas
v0.2.9
Published
universal canvas library for android,ios,browsers. Completely compatible with browser canvas.
Downloads
42
Readme
Under alpha version development.
react-universal-canvas
html5 canvas react component polyfill for android,ios. You can use canvas for android,ios without modification to browser code.
Usage
import Canvas from 'react-universal-canvas'
React.createClass({
somemethod() {
const canvas = this.refs.canvas
const ctx = canvas.getContext()
// You can use CanvasRenderingContext2D api.
ctx.save()
ctx.lineStyle = '#f00'
ctx.lineWidth = 6
ctx.lineCap = 'round'
ctx.beginPath()
ctx.moveTo(10,10)
ctx.lineTo(100,100)
ctx.stroke()
ctx.restore()
}
render() {
return (
<Canvas ref='canvas' width={200} height={200} />
)
}
})
Install
npm install react-universal-canvas
Add it to your project
You can use rnpm
to add native dependencies automatically:
$ rnpm link
or do it manually as described below:
iOS
Cocoapods
add the following line to your Podfile:
pod 'UniversalCanvas', :path => '../node_modules/react-universal-canvas'
or:
Manually
- Open your project in XCode, right click on
Libraries
and clickAdd Files to "Your Project Name"
Look undernode_modules/react-universal-canvas
and addUniversalCanvas.xcodeproj
. - Add
libUniversalCanvas.a
toBuild Phases -> Link Binary With Libraries
. - Click on
UniversalCanvas.xcodeproj
inLibraries
and go theBuild Settings
tab. Double click the text to the right ofHeader Search Paths
and verify that it has$(SRCROOT)/../react-native/React
- if it isn't, then add it. This is so XCode is able to find the headers that theUniversalCanvas
source files are referring to by pointing to the header files installed within thereact-native
node_modules
directory.
Android
in
android/settings.gradle
... include ':react-universal-canvas' project(':react-universal-canvas').projectDir = new File(rootProject.projectDir, '../node_modules/react-universal-canvas/android')
in
android/app/build.gradle
add:dependencies { ... compile project(':react-universal-canvas') }
and finally, in
android/src/main/java/com/{YOUR_APP_NAME}/MainActivity.java
for react-native < 0.29, orandroid/src/main/java/com/{YOUR_APP_NAME}/MainApplication.java
for react-native >= 0.29 add://... import com.yusukeshibata.UniversalCanvas.UniversalCanvasPackage; // <--- This! //... @Override protected List<ReactPackage> getPackages() { return Arrays.<ReactPackage>asList( new MainReactPackage(), new UniversalCanvasPackage() // <---- and This! );
}
## License
MIT