{"id":7872,"date":"2023-05-01T19:32:25","date_gmt":"2023-05-02T00:32:25","guid":{"rendered":"https:\/\/abudinen.com\/blog\/?p=7872"},"modified":"2023-05-01T19:32:26","modified_gmt":"2023-05-02T00:32:26","slug":"snippets","status":"publish","type":"post","link":"https:\/\/abudinen.com\/blog\/2023\/05\/01\/snippets\/","title":{"rendered":"Snippets"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">&lt;uses-permission android:name=&#8221;android.permission.RECORD_AUDIO&#8221;\/&gt;    &lt;uses-permission android:name=&#8221;android.permission.INTERNET&#8221;\/&gt;    &lt;uses-permission android:name=&#8221;android.permission.BLUETOOTH&#8221;\/&gt;    &lt;uses-permission android:name=&#8221;android.permission.BLUETOOTH_ADMIN&#8221;\/&gt;    &lt;uses-permission android:name=&#8221;android.permission.BLUETOOTH_CONNECT&#8221;\/&gt;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For apk (Android) you need to run the command :<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">flutter build apk &#8211;release<br>If you want to split the apks per abi (Split Apk) then run<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">flutter build apk &#8211;target-platform android-arm,android-arm64,android-x64 &#8211;split-per-abi<br>For ipa (iOS) you need to run the command :<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">flutter build ios &#8211;release<br>From the console<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">P.S. &#8211;release is optional as it is by default if you need debug build, just replace &#8211;release with &#8211;debug<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">you can find the released APK or IPA files form<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">build\/app\/outputs\/flutter-apk\/app-release.apk<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Run:<br>flutter create my_app<br>cd my_app<br>flutter analyze<br>flutter test<br>flutter run lib\/main.dart<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">flutter build apk &#8211;release<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">minSdkVersion 21<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tools:<br>https:\/\/ajax.googleapis.com\/ajax\/libs\/model-viewer\/3.0.1\/model-viewer.js<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/web.dev\/custom-elements-v1\/\" rel=\"noopener nofollow\">https:\/\/web.dev\/custom-elements-v1\/<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/htmlcolorcodes.com\/colors\/shades-of-blue\/\" rel=\"noopener nofollow\">https:\/\/htmlcolorcodes.com\/colors\/shades-of-blue\/<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/sketchfab.com\/tags\/glb\" rel=\"noopener nofollow\">https:\/\/sketchfab.com\/tags\/glb<\/a> <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&lt;!&#8211; Import the component &#8211;&gt;&lt;script type=&#8221;module&#8221; src=&#8221;https:\/\/ajax.googleapis.com\/ajax\/libs\/model-viewer\/3.0.1\/model-viewer.min.js&#8221;&gt;&lt;\/script&gt;&lt;!&#8211; Use it like any other HTML element &#8211;&gt;&lt;model-viewer alt=&#8221;Neil Armstrong&#8217;s Spacesuit from the Smithsonian Digitization Programs Office and National Air and Space Museum&#8221; src=&#8221;https:\/\/modelviewer.dev\/shared-assets\/models\/NeilArmstrong.glb&#8221; ar environment-image=&#8221;https:\/\/modelviewer.dev\/shared-assets\/environments\/moon_1k.hdr&#8221; poster=&#8221;shared-assets\/models\/NeilArmstrong.webp&#8221; shadow-intensity=&#8221;1&#8243; camera-controls touch-action=&#8221;pan-y&#8221;&gt;&lt;\/model-viewer&gt;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ionic:<br>$ ionic build<br>$ ionic serve<br>$ ionic integrations enable capacitor<br>$ ionic cap add android<br>$ ionic cap open android<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I got the same issue, you have to update ionic to the latest version.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">npm uninstall -g @ionic\/cli<br>npm install -g @ionic\/cli@latest<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">npx ionic serve &#8211;external<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/ionicframework.com\/docs\/intro\/cli\" rel=\"noopener nofollow\">https:\/\/ionicframework.com\/docs\/intro\/cli<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">npm install -g @ionic\/cli @capacitor\/assets<br>git clone https:\/\/github.com\/luisgutie\/isr.git isr<br>cd isr &amp;&amp; npm install &amp;&amp; ionic serve<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Considering your use case: You can manually run cordova telemetry off right before you run build commands or provide the &#8211;no-telemetry flag (e.g. cordova build &#8211;no-telemetry).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tools:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">https:\/\/fluttergems.dev\/3d\/ https:\/\/dartpad.dev\/?id=cf9e652f77636224d3e37d96dcf238e5 https:\/\/pub.dev\/packages <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">3d design api https:\/\/developers.archilogic.com\/3d-embed-api\/guide.html https:\/\/www.archilogic.com\/<br>veo que hay varios floor plan builders con API abiertas<br>en cuanto a la parte de integracion<br>pero no se cual ser\u00e1 mejor<br>ser\u00eda para que los usuarios dibujen sus cuartos https:\/\/floorplanner.readme.io\/reference\/api<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Run:<br>flutter pub get<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">flutter run -d chrome &#8211;web-renderer html<br>flutter build web &#8211;web-renderer canvaskit<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Steps for MIUI 9 and Above:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Settings -&gt; Additional Settings -&gt; Developer options -&gt;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Turn off &#8220;MIUI optimization&#8221; and Restart<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Turn On &#8220;USB Debugging&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Turn On &#8220;Install via USB&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">MTP(Media Transfer Protocol) is the default mode.<br>Works even in MTP in some cases<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Set USB Configuration to Charging<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">How to run flutter apps on android device<br>You need to connect device with USB Cable<br>Enable Developer Option &amp; USB Debugging from device settings<br>If you\u2019re not finding developer option, goto about phone, tap build number for multiple times<br>Execute<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">flutter devices<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">to check connected devices<br>Execute<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">flutter run<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">to run your app on device<br>How to run flutter apps on Android device wirelessly (remotely)<br>Follow the above step &amp; make sure you\u2019ve successfully run the app<br>Then execute<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">adb tcpip 5555<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Check your device IP address (Make sure, all your device is connected on same network<br>execute<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">adb connect YOURIP:5555<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Remove USB &amp; Execute<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">flutter devices<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">&amp;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">flutter run<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">&lt;manifest xmlns:android=&#8221;http:\/\/schemas.android.com\/apk\/res\/android&#8221;<br>&nbsp;&nbsp;&nbsp; package=&#8221;com.csdcorp.speech_to_text_example&#8221;&gt;<br>&nbsp;&nbsp;&nbsp; &lt;uses-permission android:name=&#8221;android.permission.RECORD_AUDIO&#8221;\/&gt;<br>&nbsp;&nbsp;&nbsp; &lt;uses-permission android:name=&#8221;android.permission.INTERNET&#8221;\/&gt;<br>&nbsp;&nbsp;&nbsp; &lt;queries&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;intent&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;action android:name=&#8221;android.speech.RecognitionService&#8221; \/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;\/intent&gt;<br>&nbsp;&nbsp;&nbsp; &lt;\/queries&gt;<br>&#8230;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Build.gradle<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">minSdkVersion 21, targetSdkVersion 30<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">bm:<br>\/android\/app\/src\/main\/AndroidManifest.xml<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">return {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8216;statusCode&#8217;: 200,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8216;headers&#8217;: {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8216;Access-Control-Allow-Headers&#8217;: &#8216;Content-Type&#8217;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8216;Access-Control-Allow-Origin&#8217;: &#8216;*&#8217;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8216;Content-Type&#8217;: &#8216;application\/json&#8217;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8216;Access-Control-Allow-Methods&#8217;: &#8216;OPTIONS,POST,GET&#8217;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8216;body&#8217;: json.dumps(response_from_joi)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I&#8217;m trying to implement RevenueCat In-App Subscriptions into my Expo managed app, and to test the implementation I need to do it on a real device.<br>So far, I ran:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">expo install expo-dev-client expo install react-native-purchases eas build --profile development --platform android <\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">I downloaded the development build and installed it on the device, then I ran:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">expo start --dev-client<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Please follow the below steps:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Go to your react-native Project then go to the android directory Create a file with the following name:<br>local.properties<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Open the file and paste your Android SDK path like below:<br>For windows users:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">sdk.dir=C:\\\\Users\\\\UserName\\\\AppData\\\\Local\\\\Android\\\\sdk<br>or (for newer versions of Android Studio \/ IntelliJ IDEA):<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">sdk.dir=C\\:\\\\Users\\\\USERNAME\\\\AppData\\\\Local\\\\Android\\\\sdk<br>Where USERNAME your PC user name. Also, make sure the folder is sdk or Sdk.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Example:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">sdk.dir=C:\\\\Users\\\\USERNAME\\\\AppData\\\\Local\\\\Android\\\\sdk<br>or:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">sdk.dir=C\\:\\\\Users\\\\USERNAME\\\\AppData\\\\Local\\\\Android\\\\Sdk<br>For Mac users:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">sdk.dir = \/Users\/USERNAME\/Library\/Android\/sdk<br>Where USERNAME is your OSX username.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For Linux (Ubuntu) users:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">sdk.dir = \/home\/USERNAME\/Android\/Sdk<br>Where USERNAME is your linux username (Linux paths are case-sensitive: make sure the case of S in Sdk matches)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In case this doesn&#8217;t work, add ANDROID_HOME variable in &#8220;Environment Variables&#8221; as C:\\Users\\USER\\AppData\\Local\\Android\\Sdk<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">enter image description here<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Go to your React-native Project -&gt; Android<br>Create a file local.properties<br>Open the file<br>paste your Android SDK path like below<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">in Windows sdk.dir = C:\\\\Users\\\\USERNAME\\\\AppData\\\\Local\\\\Android\\\\sdk<br>in macOS sdk.dir = \/Users\/USERNAME\/Library\/Android\/sdk<br>in linux sdk.dir = \/home\/USERNAME\/Android\/Sdk<br>Replace USERNAME with your user name<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Now, Run the react-native run-android in your terminal.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If I manually add this to build.gradle it works.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">buildscript {<br>&nbsp;&nbsp;&nbsp; ext {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; kotlinVersion = &#8220;1.6.0&#8221;<br>&nbsp;&nbsp; }<br>}<br>Then I needed to follow this step as well: https:\/\/stackoverflow.com\/a\/58602329\/5191800<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ionic integrations enable cordova &#8211;add<br>Error: Source path does not exist: resources\\android\\icon\\drawable-hdpi-icon.png<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[Error: No Java files found which extend CordovaActivity.]<br>remove : cordova platform rm android<br>add : cordova platform add android<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">sdk.dir = \/home\/a\/Android\/Sdk<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">local.properties<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/sdkman.io\/install\" rel=\"noopener nofollow\">https:\/\/sdkman.io\/install<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">$ cd Ionic-foder<br>&nbsp;&nbsp;&nbsp; $ npm install &#8211;save<br>&nbsp;&nbsp;&nbsp; $ ionic cordova platform add android<br>&nbsp;&nbsp;&nbsp; $ ionic cordova build android<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ionic cordova build &#8211;no-telemetry android<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">npm install -g ionic@latest<br>npm install -g cordova@latest<br>npm install -g cordova-android@latest<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">export CAPACITOR_ANDROID_STUDIO_PATH=\/opt\/android-studio\/bin\/studio.sh<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In your ionic project root, you should have installed npm install @capacitor\/core @capacitor\/cli with the &#8211;capacitor option, please try the following:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">install npm install @capacitor-community\/electron<br>run npx cap init<br>ionic build<br>npx cap add @capacitor-community\/electron<br>npx cap open @capacitor-community\/electron<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Set environment variable&#8211;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Step1- Run: nano ~\/.bashrc in terminal.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Step2- Add export CAPACITOR_ANDROID_STUDIO_PATH=&#8221;path of android-studio\/bin\/studio.sh&#8221; in .bashrc file.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Step3- Run npx cap open android in terminal.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">class RecognizedCheckDataService private constructor(context: Context) { private var context: Context? = null init { \/\/ default constructor this.context = context recognizedCheckDataDir = AndroidFileUtil.getInternalStoragePath(context, RECOGNIZED_CHECK_DATA) }<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">cd android &amp;&amp; .\/gradlew assembleDebug<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">sudo ionic capacitor copy android<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8220;ios&#8221;: &#8220;sudo ionic build &amp;&amp; npx cap sync ios &amp;&amp; npx cap open ios&#8221;, &#8220;android&#8221;: &#8220;sudo ionic build &amp;&amp; npx cap sync android &amp;&amp; npx cap open android&#8221;,<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I was having this issue and the way I worked out to do this:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You need to add android first:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ionic capacitor add android<br>ionic capacitor copy android &amp;&amp; cd android &amp;&amp; .\/gradlew assembleDebug &amp;&amp; cd ..<br>Then your apk will be at:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">android\/app\/build\/outputs\/apk\/debug\/app-debug.apk<br>If you want to run on device directly from command line:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ionic capacitor copy android &amp;&amp; cd android &amp;&amp; .\/gradlew assembleDebug &amp;&amp; .\/gradlew installDebug &amp;&amp; cd ..<br>Note: It doesn\u2019t work without entering the android directory<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I hope that helps!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">flutter build web &#8211;profile &#8211;dart-define=Dart2jsOptimization=O0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">flutter build web &#8211;profile &#8211;source-maps<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Webpack?:<br>{<br>&nbsp; &#8220;appId&#8221;: &#8220;com.example.app&#8221;,<br>&nbsp; &#8220;appName&#8221;: &#8220;EnglishColor&#8221;,<br>&nbsp; &#8220;bundledWebRuntime&#8221;: false,<br>&nbsp; &#8220;webDir&#8221;: &#8220;dist&#8221;,<br>&nbsp; &#8220;hideLogs&#8221;: false,<br>&nbsp; &#8220;loggingBehavior&#8221;: &#8220;debug&#8221;,<br>&nbsp; &#8220;includePlugins&#8221;: [&#8220;SplashScreen&#8221;],<br>&nbsp; &#8220;plugins&#8221;: {<br>&nbsp;&nbsp;&nbsp; &#8220;SplashScreen&#8221;: {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8220;launchShowDuration&#8221;: 1<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp; }<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">npm run build<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">cd android\/<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">npx cap sync<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I think the question was if it is possible to use a script tag with two or more types at the same time (e.g. something like&nbsp;type=&#8221;module, txt\/babel&#8221;). As far as I know the answer is NO.<br>JonDotsoy&#8217;s answer helps with reduce typing&nbsp;React.createElement&nbsp;over and over again but even with such a &#8220;variable shortcut&#8221; it&#8217;s not as comfortable as JSX when using larger templates with nested elements because&nbsp;h(&#8216;div&#8217;, {}, &#8216;hello!!&#8217;)&#8230;&nbsp;is difficult to maintain in such cases.<br>The only way I found to combine native browser module support and in-browser Babel for JSX without using any build tool is this &#8230; a rather dirty hack that uses&nbsp;eval&nbsp;and should not be used for production apps:<br>index.html<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&lt;body&gt; &lt;div id=\"app\"&gt;&lt;\/div&gt; &lt;!-- Scripts ------- --&gt; &lt;script src=\"vendor\/js\/babel.min.js\"&gt;&lt;\/script&gt; &lt;script src=\"vendor\/js\/react.development.js\"&gt;&lt;\/script&gt; &lt;script src=\"vendor\/js\/react-dom.development.js\"&gt;&lt;\/script&gt; &lt;script src=\"app\/app.js\" type=\"module\"&gt;&lt;\/script&gt; &lt;\/body&gt; <\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">app\/app.js<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">import ComponentOne from \".\/ComponentOne.js\"; let template = <\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"> &lt;div&gt; &lt;h1&gt;Heading&lt;\/h1&gt; &lt;hr \/&gt; &lt;ComponentOne msg=\"MsgText-ComponentOne\" \/&gt; &lt;\/div&gt; <\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">; const App = () =&gt; { return ( eval(Babel.transform(template, { presets: [&#8216;es2017&#8217;, &#8216;react&#8217;] }).code) ); }; ReactDOM.render( React.createElement(App, null), document.getElementById(&#8220;app&#8221;) );<br>app\/ComponentOne.js<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">import ComponentTwo from \".\/ComponentTwo.js\"; let template = <\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"> &lt;div&gt; &lt;h2&gt;This is ComponentOne&lt;\/h2&gt; &lt;p key=\"2\"&gt;Property \"msg\" content: {props.msg}&lt;\/p&gt; &lt;ComponentTwo msg=\"MsgText-ComponentTwo\" \/&gt; &lt;\/div&gt; <\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">; const ComponentOne = (props) =&gt; { return( eval(Babel.transform(template, { presets: [&#8216;es2017&#8217;, &#8216;react&#8217;] }).code) ); }; export default ComponentOne;<br>app\/ComponentTwo.js<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">let template = <\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"> &lt;div&gt; &lt;h2&gt;This is ComponentTwo&lt;\/h2&gt; &lt;p key=\"2\"&gt;Property \"msg\" content: {props.msg}&lt;\/p&gt; &lt;\/div&gt; <\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">; const ComponentTwo = (props) =&gt; { return( eval(Babel.transform(template, { presets: [&#8216;es2017&#8217;, &#8216;react&#8217;] }).code) ); }; export default ComponentTwo;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&lt;script src=&#8221;https:\/\/unpkg.com\/react@17\/umd\/react.development.js&#8221; crossorigin&gt;&lt;\/script&gt;<br>&nbsp;&nbsp;&nbsp; &lt;script src=&#8221;https:\/\/unpkg.com\/react-dom@17\/umd\/react-dom.development.js&#8221; crossorigin&gt;&lt;\/script&gt;<br>&nbsp;&nbsp;&nbsp; &lt;script src=&#8221;https:\/\/unpkg.com\/@babel\/standalone\/babel.min.js&#8221;&gt;&lt;\/script&gt;<br>&nbsp; &lt;\/head&gt;<br>&lt;body&gt;<br>&nbsp; &lt;div id=&#8221;mydiv&#8221;&gt;&lt;\/div&gt;<br>&nbsp; &lt;script type=&#8221;text\/babel&#8221;&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function Hello() {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return &lt;h1&gt;Hello World!&lt;\/h1&gt;;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ReactDOM.render(&lt;Hello\/&gt;, document.getElementById(&#8216;mydiv&#8217;))<br>&nbsp; &lt;\/script&gt;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&lt;div id=&#8221;output&#8221;&gt;&lt;\/div&gt;<br>&lt;!&#8211; Load Babel &#8211;&gt;<br>&lt;div id=&#8221;mydiv&#8221;&gt;&lt;\/div&gt;<br>&nbsp;&nbsp;&nbsp; &lt;script src=&#8221;https:\/\/unpkg.com\/react@17\/umd\/react.development.js&#8221; crossorigin&gt;&lt;\/script&gt;<br>&nbsp;&nbsp;&nbsp; &lt;script src=&#8221;https:\/\/unpkg.com\/react-dom@17\/umd\/react-dom.development.js&#8221; crossorigin&gt;&lt;\/script&gt;<br>&lt;script src=&#8221;https:\/\/unpkg.com\/@babel\/standalone\/babel.min.js&#8221;&gt;&lt;\/script&gt;<br>&lt;!&#8211; Your custom script here &#8211;&gt;<br>&lt;script type=&#8221;text\/babel&#8221;&gt;<br>&nbsp; const getMessage = () =&gt; &lt;h1&gt;Hello World!&lt;\/h1&gt;; document.getElementById(&#8220;output&#8221;).innerHTML = getMessage();<br>function Hello() {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return &lt;h1&gt;Hello World!&lt;\/h1&gt;;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp; ReactDOM.render(&lt;Hello\/&gt;, document.getElementById(&#8216;mydiv&#8217;))<br>&lt;\/script&gt;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&lt;script src=&#8221;https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/babel-standalone\/6.7.7\/babel.min.js&#8221;&gt;&lt;\/script&gt;<br>&lt;script text=&#8221;text\/babel&#8221;&gt;<br>&nbsp; var input = &#8216;const getMessage = () =&gt; &#8220;Hello World&#8221;;&#8217;;<br>&nbsp; var output = Babel.transform(input, {<br>&nbsp;&nbsp;&nbsp; presets: [&#8216;es2015&#8217;]<br>&nbsp; }).code;<br>&nbsp; console.log(output);<br>&lt;\/script&gt;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Go to the index.html file and import the script<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&lt;script src=\"https:\/\/cdn.dwolla.com\/1\/dwolla.js\"&gt;&lt;\/script&gt; <\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Then, in the file where dwolla is being imported, set it to a variable<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">const dwolla = window.dwolla;<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Nomodule cdn import ionic flutter driver wasm<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&lt;uses-permission android:name=&#8221;android.permission.RECORD_AUDIO&#8221;\/&gt; &lt;uses-permission android:name=&#8221;android.permission.INTERNET&#8221;\/&gt; &lt;uses-permission android:name=&#8221;android.permission.BLUETOOTH&#8221;\/&gt; &lt;uses-permission android:name=&#8221;android.permission.BLUETOOTH_ADMIN&#8221;\/&gt; &lt;uses-permission android:name=&#8221;android.permission.BLUETOOTH_CONNECT&#8221;\/&gt; For apk (Android) you need to run the command : flutter build apk &#8211;releaseIf you want to split the apks per abi &#8230; <a title=\"Snippets\" class=\"read-more\" href=\"https:\/\/abudinen.com\/blog\/2023\/05\/01\/snippets\/\" aria-label=\"Read more about Snippets\">Leer m\u00e1s<\/a><\/p>\n<p class=\"social-share asbm-share-block\"><strong class=\"asbm-share-title\">Sharing is caring<\/strong><a href=\"https:\/\/www.facebook.com\/sharer.php?u=https%3A%2F%2Fabudinen.com%2Fblog%2F2023%2F05%2F01%2Fsnippets%2F\" target=\"_blank\" rel=\"noopener\" class=\"asbm-share asbm-share--facebook\" aria-label=\"Compartir en Facebook\"><svg viewBox=\"0 0 24 24\" width=\"18\" height=\"18\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M9.101 23.691v-7.98H6.627v-3.667h2.474v-1.58c0-4.085 1.848-5.978 5.858-5.978.401 0 .955.042 1.468.103a8.68 8.68 0 0 1 1.141.195v3.325a8.623 8.623 0 0 0-.653-.036 26.805 26.805 0 0 0-.733-.009c-.707 0-1.259.096-1.675.309a1.686 1.686 0 0 0-.679.622c-.258.42-.374.995-.374 1.752v1.297h3.919l-.386 2.103-.287 1.564h-3.246v8.245C19.396 23.238 24 18.179 24 12.044c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.628 3.874 10.35 9.101 11.647z\"\/><\/svg><span class=\"asbm-share__label\">Facebook<\/span><\/a><a href=\"https:\/\/twitter.com\/intent\/tweet?text=Snippets&#038;url=https%3A%2F%2Fabudinen.com%2Fblog%2F2023%2F05%2F01%2Fsnippets%2F\" target=\"_blank\" rel=\"noopener\" class=\"asbm-share asbm-share--twitter\" aria-label=\"Compartir en X \/ Twitter\"><svg viewBox=\"0 0 24 24\" width=\"18\" height=\"18\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z\"\/><\/svg><span class=\"asbm-share__label\">X \/ Twitter<\/span><\/a><a href=\"https:\/\/www.linkedin.com\/shareArticle?mini=true&#038;url=https%3A%2F%2Fabudinen.com%2Fblog%2F2023%2F05%2F01%2Fsnippets%2F\" target=\"_blank\" rel=\"noopener\" class=\"asbm-share asbm-share--linkedin\" aria-label=\"Compartir en LinkedIn\"><svg viewBox=\"0 0 24 24\" width=\"18\" height=\"18\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 01-2.063-2.065 2.063 2.063 0 112.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z\"\/><\/svg><span class=\"asbm-share__label\">LinkedIn<\/span><\/a><a href=\"https:\/\/wa.me\/?text=Snippets%20https%3A%2F%2Fabudinen.com%2Fblog%2F2023%2F05%2F01%2Fsnippets%2F\" target=\"_blank\" rel=\"noopener\" class=\"asbm-share asbm-share--whatsapp\" aria-label=\"Compartir en WhatsApp\"><svg viewBox=\"0 0 24 24\" width=\"18\" height=\"18\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347M12.05 21.785h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z\"\/><\/svg><span class=\"asbm-share__label\">WhatsApp<\/span><\/a><a href=\"https:\/\/t.me\/share\/url?url=https%3A%2F%2Fabudinen.com%2Fblog%2F2023%2F05%2F01%2Fsnippets%2F&#038;text=Snippets\" target=\"_blank\" rel=\"noopener\" class=\"asbm-share asbm-share--telegram\" aria-label=\"Compartir en Telegram\"><svg viewBox=\"0 0 24 24\" width=\"18\" height=\"18\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M11.944 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0a12 12 0 0 0-.056 0zm4.962 7.224c.1-.002.321.023.465.14a.506.506 0 0 1 .171.325c.016.093.036.306.02.472-.18 1.898-.962 6.502-1.36 8.627-.168.9-.499 1.201-.82 1.23-.696.065-1.225-.46-1.9-.902-1.056-.693-1.653-1.124-2.678-1.8-1.185-.78-.417-1.21.258-1.91.177-.184 3.247-2.977 3.307-3.23.007-.032.014-.15-.056-.212s-.174-.041-.249-.024c-.106.024-1.793 1.14-5.061 3.345-.48.33-.913.49-1.302.48-.428-.008-1.252-.241-1.865-.44-.752-.245-1.349-.374-1.297-.789.027-.216.325-.437.893-.663 3.498-1.524 5.83-2.529 6.998-3.014 3.332-1.386 4.025-1.627 4.476-1.635z\"\/><\/svg><span class=\"asbm-share__label\">Telegram<\/span><\/a><a href=\"https:\/\/reddit.com\/submit?url=https%3A%2F%2Fabudinen.com%2Fblog%2F2023%2F05%2F01%2Fsnippets%2F&#038;title=Snippets\" target=\"_blank\" rel=\"noopener\" class=\"asbm-share asbm-share--reddit\" aria-label=\"Compartir en Reddit\"><svg viewBox=\"0 0 24 24\" width=\"18\" height=\"18\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M12 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0zm5.01 4.744c.688 0 1.25.561 1.25 1.249a1.25 1.25 0 0 1-2.498.056l-2.597-.547-.8 3.747c1.824.07 3.48.632 4.674 1.488.308-.309.73-.491 1.207-.491.968 0 1.754.786 1.754 1.754 0 .716-.435 1.333-1.01 1.614a3.111 3.111 0 0 1 .042.52c0 2.694-3.13 4.87-7.004 4.87-3.874 0-7.004-2.176-7.004-4.87 0-.183.015-.366.043-.534A1.748 1.748 0 0 1 4.028 12c0-.968.786-1.754 1.754-1.754.463 0 .898.196 1.207.49 1.207-.883 2.878-1.43 4.744-1.487l.885-4.182a.342.342 0 0 1 .14-.197.35.35 0 0 1 .238-.042l2.906.617a1.214 1.214 0 0 1 1.108-.701zM9.25 12C8.561 12 8 12.562 8 13.25c0 .687.561 1.248 1.25 1.248.687 0 1.248-.561 1.248-1.249 0-.688-.561-1.249-1.249-1.249zm5.5 0c-.687 0-1.248.561-1.248 1.25 0 .687.561 1.248 1.249 1.248.688 0 1.249-.561 1.249-1.249 0-.687-.562-1.249-1.25-1.249zm-5.466 3.99a.327.327 0 0 0-.231.094.33.33 0 0 0 0 .463c.842.842 2.484.913 2.961.913.477 0 2.105-.056 2.961-.913a.361.361 0 0 0 .029-.463.33.33 0 0 0-.464 0c-.547.533-1.684.73-2.512.73-.828 0-1.979-.196-2.512-.73a.326.326 0 0 0-.232-.095z\"\/><\/svg><span class=\"asbm-share__label\">Reddit<\/span><\/a><a href=\"mailto:?subject=Snippets&#038;body=https%3A%2F%2Fabudinen.com%2Fblog%2F2023%2F05%2F01%2Fsnippets%2F\" class=\"asbm-share asbm-share--email\" aria-label=\"Compartir en Email\"><svg viewBox=\"0 0 24 24\" width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"2\" y=\"4\" width=\"20\" height=\"16\" rx=\"2\"\/><path d=\"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7\"\/><\/svg><span class=\"asbm-share__label\">Email<\/span><\/a><span class=\"asbm-share-meta\">2265 words \u00b7 199 views<\/span><\/p>","protected":false},"author":1,"featured_media":7868,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-7872","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sin-categoria"],"_links":{"self":[{"href":"https:\/\/abudinen.com\/blog\/wp-json\/wp\/v2\/posts\/7872","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/abudinen.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/abudinen.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/abudinen.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/abudinen.com\/blog\/wp-json\/wp\/v2\/comments?post=7872"}],"version-history":[{"count":15,"href":"https:\/\/abudinen.com\/blog\/wp-json\/wp\/v2\/posts\/7872\/revisions"}],"predecessor-version":[{"id":7887,"href":"https:\/\/abudinen.com\/blog\/wp-json\/wp\/v2\/posts\/7872\/revisions\/7887"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/abudinen.com\/blog\/wp-json\/wp\/v2\/media\/7868"}],"wp:attachment":[{"href":"https:\/\/abudinen.com\/blog\/wp-json\/wp\/v2\/media?parent=7872"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/abudinen.com\/blog\/wp-json\/wp\/v2\/categories?post=7872"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/abudinen.com\/blog\/wp-json\/wp\/v2\/tags?post=7872"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}