日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

在SAP除了使用Cordova生产移动应用外,还有这种方式

發(fā)布時間:2023/12/19 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在SAP除了使用Cordova生产移动应用外,还有这种方式 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本文和Jerry過去的文章不太一樣,算不上Jerry的知識分享,只是記錄一下Jerry用React-Native把應(yīng)用安裝到Android手機上遇到的一些問題,方便以后查看。

Jerry的同事Leo用React-Native開發(fā)了一個應(yīng)用,現(xiàn)在Jerry需要把這個應(yīng)用在自己的安卓手機上運行起來。

客戶啟動這個應(yīng)用后,自動召喚出手機上的攝像頭,對身邊的物品進(jìn)行拍照,然后把照片上傳到SAP Cloud Platform的Leonardo那里,消費機器學(xué)習(xí)API之一的Similarity score服務(wù),返回最相似的三個圖案。

去年Jerry的C4C開發(fā)團(tuán)隊同事,Yang Joey曾經(jīng)寫過一篇文章:SAP移動應(yīng)用解決方案之一:HTML5應(yīng)用 + Cordova = 平臺相關(guān)的混合應(yīng)用,介紹了SAP Cloud for Customer的移動端應(yīng)用是怎么基于開源項目Cordova創(chuàng)建的,當(dāng)時文章曾經(jīng)提及,使用Cordova打包成的移動應(yīng)用,實際上運行在移動平臺的WebView里。而React-Native則有著和Cordova完全不同的設(shè)計理念。

關(guān)于這兩種技術(shù)的比較,網(wǎng)上有很多的文章,大家根據(jù)關(guān)鍵字“React-Native Cordova”搜索就行了,比如這篇:

https://www.toptal.com/mobile/comparing-react-native-to-cordova

Jerry是按照React-Native中文網(wǎng)站一步一步操作的,過程中遇到一些問題,全都是和Android平臺相關(guān)的,React-Native官網(wǎng)沒有提及,最后靠Google都順利解決了。

Could not resolve project: react-native-camera

Google找到一個鏈接:https://github.com/react-native-community/react-native-camera/blob/master/docs/migrationV2.md#android

需要在應(yīng)用的android/app/build.gradle文件里添加一行配置:missingDimensionStrategy ‘react-native-camera’, ‘general’

com.android.builder.testing.api.DeviceException: No connected devices!

這報錯信息很清楚,React-Native cli不知道應(yīng)該將打好包的應(yīng)用安裝在什么地方。解決方法也很容易,要么啟動一個Android模擬器,要么用USB連接真機。

用AVD manager啟動一個模擬器:

然后重新執(zhí)行react-native run-android, 就能將應(yīng)用安裝到模擬器上了。

或者用USB連接手機,打開手機上的USB調(diào)試選項:

一樣能夠通過react-native run-android將應(yīng)用直接裝到手機上:

Failed to install the following Android SDK packages as some licences have not been accepted.

這個錯也容易解決,執(zhí)行sdkmanager.bat --licenses, 一路選擇Y接受所有的licenses即可。

cannot find symbol import androidx.annotation.Nullable;

編譯錯誤。在應(yīng)用的android文件夾的gradle.properties配置文件里,增加下面兩條配置記錄:
android.useAndroidX=true
android.enableJetifier=true

之后這個編譯錯誤就沒有了。

因為Leo開發(fā)的這個React-Native應(yīng)用里面可以用JavaScript代碼調(diào)用手機攝像頭,Jerry覺得非常神奇,出于好奇,打開Leo的代碼學(xué)習(xí)了一下。

從react-native-camera庫里導(dǎo)出RNCamera組件:

到React-Native應(yīng)用文件夾node_modules下查看RNCamera的實現(xiàn),發(fā)現(xiàn)果然是根據(jù)移動操作系統(tǒng)的類型分別作了處理。如果是Android平臺,使用攝像頭對應(yīng)的權(quán)限為:PermissionsAndroid.PERMISSIONS.CAMERA

在Android平臺下使用攝像頭的Java代碼,存放在對應(yīng)的android文件夾里。

Jerry以前使用Cordova生產(chǎn)移動移動時,曾經(jīng)研究過Cordova應(yīng)用里的JavaScript代碼是如何調(diào)用Android平臺上原生的Java代碼的,也在SAP社區(qū)上寫了一些文章:

https://blogs.sap.com/2017/08/18/step-by-step-to-create-a-custom-cordova-plugin-for-android-and-consume-it-in-your-ui5-application/

這篇文章介紹的是如果發(fā)現(xiàn)Cordova提供的標(biāo)準(zhǔn)插件不能滿足我們的需求時,我們可以用Java開發(fā)自定義的Cordova插件,然后在JavaScript代碼里調(diào)用。

Cordova里JavaScript代碼調(diào)用Java代碼的原理,Jerry在這三篇SAP社區(qū)博客里介紹過:

  • How is OData request routed to Offline data store by Odata offline plugin

  • How is JavaScript code in OData offline plugin delegated to native Java code in Android

  • How is OData offline store opened in Android platform

至于React-Native應(yīng)用里的JavaScript代碼是否通過同樣的原理調(diào)用Java代碼,Jerry還沒有時間去研究,因為我下一步需要弄清楚如何使用React-Native基于Android平臺打一個可以安裝的apk文件出來,這樣才能分發(fā)給其他同事測試。

感謝閱讀。

更多閱讀

  • SAP移動應(yīng)用解決方案之一:HTML5應(yīng)用 + Cordova = 平臺相關(guān)的混合應(yīng)用
  • SAP Fiori應(yīng)用的三種部署方式
    要獲取更多Jerry的原創(chuàng)文章,請關(guān)注公眾號"汪子熙":

總結(jié)

以上是生活随笔為你收集整理的在SAP除了使用Cordova生产移动应用外,还有这种方式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。