React Native Canvas介紹及修正在Android 12上的滾動效果

React Native Canvas介紹 https://github.com/iddan/react-native-canvas 如果你想在React Native上製在一個用手指在螢幕上繪圖的功能,那麼React Native Canvas會很適合你。 React Native Canvas 是一個很有趣的library,它可以讓你在React Native上使用類似HTML 5 Canvas的API。 那麼它是如何做到的?很簡單,就是直接使用WebView,然後寫一套API去把指令從React Native傳過去WebView。 在WebView那裡就是直接調用HTML 5的Canvas API了。 來看一下它的原始碼: 這個原始碼是我從 Canvas.js 裡抽出來的,可以看到其實就是一個WebView。而WebView component和React Native之間就是利用 onMessage 和 webview.postMessage 來進行溝通的。 這是一種很常用的WebView交換資料方式,詳細可以到react-native-webview的API文檔去查看。 onMessage (Prop): https://github.com/react-native-webview/react-native-webview/blob/master/docs/Reference.md#onmessage postMessage (Function): https://github.com/react-native-webview/react-native-webview/blob/master/docs/Reference.md#postmessagestr Library的其它檔案連接了各種Canvas API的interface,一般用到的都會有。 我自己是用來製作簡單的手指繪圖功能,效能還算不錯,如果我不說的話,基本上沒有人會知道這個繪圖功能是一個WebView做出來的。 當然,這就是得益於現在的手機越來越快,WebView效能越來越好,我現在連PDF都是用PDF.js來顯示的。回想很多年前,我也曾試在手機上使用PDF.js,但實在太慢。 以後有機會說說在React Native上用PDF.js。 話說回來,只要你會用HTML 5的Canvas AP...