<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="http://178.140.10.58:8080/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://178.140.10.58:8080/feed.php">
        <title>Библиотека знаний - mobile</title>
        <description>Заметки IT программиста</description>
        <link>http://178.140.10.58:8080/</link>
        <image rdf:resource="http://178.140.10.58:8080/lib/exe/fetch.php?media=wiki:dokuwiki.svg" />
       <dc:date>2026-04-17T11:53:29+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://178.140.10.58:8080/doku.php?id=mobile:ionic"/>
                <rdf:li rdf:resource="http://178.140.10.58:8080/doku.php?id=mobile:prepaire"/>
                <rdf:li rdf:resource="http://178.140.10.58:8080/doku.php?id=mobile:reactnative"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://178.140.10.58:8080/lib/exe/fetch.php?media=wiki:dokuwiki.svg">
        <title>Библиотека знаний</title>
        <link>http://178.140.10.58:8080/</link>
        <url>http://178.140.10.58:8080/lib/exe/fetch.php?media=wiki:dokuwiki.svg</url>
    </image>
    <item rdf:about="http://178.140.10.58:8080/doku.php?id=mobile:ionic">
        <dc:format>text/html</dc:format>
        <dc:date>2023-07-17T01:08:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Ionic, Cordova + Ionic, Capacitor</title>
        <link>http://178.140.10.58:8080/doku.php?id=mobile:ionic</link>
        <description>&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:mobile&amp;amp;do=showtag&amp;amp;tag=mobile&quot; class=&quot;wikilink1&quot; title=&quot;tag:mobile&quot; rel=&quot;tag&quot;&gt;mobile&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:ionic&amp;amp;do=showtag&amp;amp;tag=ionic&quot; class=&quot;wikilink1&quot; title=&quot;tag:ionic&quot; rel=&quot;tag&quot;&gt;ionic&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:capacitor&amp;amp;do=showtag&amp;amp;tag=capacitor&quot; class=&quot;wikilink1&quot; title=&quot;tag:capacitor&quot; rel=&quot;tag&quot;&gt;capacitor&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;p&gt;
.
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;ionic_cordova_ionic_capacitor&quot;&gt;Ionic, Cordova + Ionic, Capacitor&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Сам по себе Ionic - это набор веб-компонентов заточенных под использоватние на мобильных устройствах. Его можно спокойно использовать на любых веб-страницах.
&lt;/p&gt;

&lt;p&gt;
Cordova + Ionic - Это Cordova-приложение. И тут архитектуру диктует именно Cordova. С этим связано то, что прложение получается тяжелым и медленным. А также то что вносить измменения в нативную часть очень тяжело. Я в своё время модифицировал плагин пуш уведомлений, а плагин Apllepay добавил в магазин плагинов.
(Сразу оговорюсь, не я автор плагина Apple Pay. Я только его нашел, доработал, и добавил в магазин.)
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://capacitorjs.com/docs/updating/3-0#switch-to-automatic-android-plugin-loading&quot; class=&quot;urlextern&quot; title=&quot;https://capacitorjs.com/docs/updating/3-0#switch-to-automatic-android-plugin-loading&quot; rel=&quot;ugc nofollow&quot;&gt;Capacitor&lt;/a&gt; - Это новая реинкарнация этого фреймворка. Тут уже берется любое SPA и запускается в нативном WebView. Тем самым получая лучшее из связки натива и веба.
Дальше, при желании, приложение можно модифицировать как со стороны веба, так и со стороны натива. Типичный пример - добавление функционала получения Push-уведомлений на IOS. Там не просто плагин добавляется, там нужно ручками внести изменения в нативную часть
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=mobile:prepaire&quot; class=&quot;wikilink1&quot; title=&quot;mobile:prepaire&quot; data-wiki-id=&quot;mobile:prepaire&quot;&gt;Подготовка&lt;/a&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=mobile:create-application:ionic&quot; class=&quot;wikilink1&quot; title=&quot;mobile:create-application:ionic&quot; data-wiki-id=&quot;mobile:create-application:ionic&quot;&gt;Создание и сборка приложения Ionic&lt;/a&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=mobile:create-application:cordova&quot; class=&quot;wikilink1&quot; title=&quot;mobile:create-application:cordova&quot; data-wiki-id=&quot;mobile:create-application:cordova&quot;&gt;Cordova&lt;/a&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Ionic, Cordova + Ionic, Capacitor&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;ionic_cordova_ionic_capacitor&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;50-2026&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;create_application&quot;&gt;Create application&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;pre class=&quot;code bash&quot;&gt;$ npm &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-g&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;ionic&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cli native-run cordova-res
$ ionic start photo-gallery tabs &lt;span class=&quot;re5&quot;&gt;--type&lt;/span&gt;=angular &lt;span class=&quot;re5&quot;&gt;--capacitor&lt;/span&gt;
$ &lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt; .&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;photo-gallery
$ npm &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;capacitor&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;camera &lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;capacitor&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;preferences &lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;capacitor&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;filesystem&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Create application&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;create_application&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;2027-2290&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit3&quot; id=&quot;install_modules&quot;&gt;Install modules&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;a href=&quot;https://capacitorjs.com/docs/plugins&quot; class=&quot;urlextern&quot; title=&quot;https://capacitorjs.com/docs/plugins&quot; rel=&quot;ugc nofollow&quot;&gt;https://capacitorjs.com/docs/plugins&lt;/a&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;a href=&quot;https://capacitorjs.com/docs/apis&quot; class=&quot;urlextern&quot; title=&quot;https://capacitorjs.com/docs/apis&quot; rel=&quot;ugc nofollow&quot;&gt;https://capacitorjs.com/docs/apis&lt;/a&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;a href=&quot;https://capacitorjs.com/docs/plugins/community&quot; class=&quot;urlextern&quot; title=&quot;https://capacitorjs.com/docs/plugins/community&quot; rel=&quot;ugc nofollow&quot;&gt;https://capacitorjs.com/docs/plugins/community&lt;/a&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;a href=&quot;https://github.com/orgs/capacitor-community/repositories&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/orgs/capacitor-community/repositories&quot; rel=&quot;ugc nofollow&quot;&gt;https://github.com/orgs/capacitor-community/repositories&lt;/a&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;


&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Install modules&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;install_modules&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;2291-2513&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit4&quot; id=&quot;capacitor_camera&quot;&gt;@capacitor/camera&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://capacitorjs.com/docs/apis/camera&quot; class=&quot;urlextern&quot; title=&quot;https://capacitorjs.com/docs/apis/camera&quot; rel=&quot;ugc nofollow&quot;&gt;https://capacitorjs.com/docs/apis/camera&lt;/a&gt;
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;$ npm &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;capacitor&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;camera
$ npx cap &lt;span class=&quot;kw2&quot;&gt;sync&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;@capacitor\/camera&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;capacitor_camera&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;2514-2655&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit5&quot; id=&quot;capacitor_filesystem&quot;&gt;@capacitor/filesystem&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://capacitorjs.com/docs/apis/filesystem&quot; class=&quot;urlextern&quot; title=&quot;https://capacitorjs.com/docs/apis/filesystem&quot; rel=&quot;ugc nofollow&quot;&gt;https://capacitorjs.com/docs/apis/filesystem&lt;/a&gt;
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;$ npm &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;capacitor&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;filesystem
$ npx cap &lt;span class=&quot;kw2&quot;&gt;sync&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;@capacitor\/filesystem&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;capacitor_filesystem&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;2656-2809&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit6&quot; id=&quot;capacitor_preferences&quot;&gt;@capacitor/preferences&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://capacitorjs.com/docs/apis/preferences&quot; class=&quot;urlextern&quot; title=&quot;https://capacitorjs.com/docs/apis/preferences&quot; rel=&quot;ugc nofollow&quot;&gt;https://capacitorjs.com/docs/apis/preferences&lt;/a&gt;
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;$ npm &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;capacitor&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;preferences
$ npx cap &lt;span class=&quot;kw2&quot;&gt;sync&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;@capacitor\/preferences&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;capacitor_preferences&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;2810-2966&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit7&quot; id=&quot;capacitor_motion&quot;&gt;@capacitor/motion&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://capacitorjs.com/docs/apis/motion&quot; class=&quot;urlextern&quot; title=&quot;https://capacitorjs.com/docs/apis/motion&quot; rel=&quot;ugc nofollow&quot;&gt;https://capacitorjs.com/docs/apis/motion&lt;/a&gt;
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;$ npm &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;capacitor&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;motion
$ npx cap &lt;span class=&quot;kw2&quot;&gt;sync&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
&lt;a href=&quot;https://capacitorjs.com/docs/apis/haptics&quot; class=&quot;urlextern&quot; title=&quot;https://capacitorjs.com/docs/apis/haptics&quot; rel=&quot;ugc nofollow&quot;&gt;https://capacitorjs.com/docs/apis/haptics&lt;/a&gt;
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;$ npm &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;capacitor&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;haptics
$ npx cap &lt;span class=&quot;kw2&quot;&gt;sync&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
&lt;a href=&quot;https://capacitorjs.com/docs/apis/device&quot; class=&quot;urlextern&quot; title=&quot;https://capacitorjs.com/docs/apis/device&quot; rel=&quot;ugc nofollow&quot;&gt;https://capacitorjs.com/docs/apis/device&lt;/a&gt;
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;$ npm &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;capacitor&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;device
$ npx cap &lt;span class=&quot;kw2&quot;&gt;sync&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;@capacitor\/motion&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;capacitor_motion&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;2967-3328&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit8&quot; id=&quot;capacitor_assets&quot;&gt;@capacitor/assets&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://capacitorjs.com/docs/guides/splash-screens-and-icons&quot; class=&quot;urlextern&quot; title=&quot;https://capacitorjs.com/docs/guides/splash-screens-and-icons&quot; rel=&quot;ugc nofollow&quot;&gt;https://capacitorjs.com/docs/guides/splash-screens-and-icons&lt;/a&gt;
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;$ npm &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;capacitor&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;assets &lt;span class=&quot;re5&quot;&gt;--save-dev&lt;/span&gt;
$ npx capacitor-assets generate&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;@capacitor\/assets&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;capacitor_assets&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;3329-3519&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit9&quot; id=&quot;ionic-native-sms-retriever-plugin-master&quot;&gt;ionic-native-sms-retriever-plugin-master&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://github.com/hanatharesh2712/ionic-native-sms-retriever-plugin-master&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/hanatharesh2712/ionic-native-sms-retriever-plugin-master&quot; rel=&quot;ugc nofollow&quot;&gt;https://github.com/hanatharesh2712/ionic-native-sms-retriever-plugin-master&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
old:
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;$ ionic cordova plugin add cordova-plugin-sms-retriever-manager
$ ionic cordova plugin add https:&lt;span class=&quot;sy0&quot;&gt;//&lt;/span&gt;github.com&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;hanatharesh2712&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ionic-native-sms-retriever-plugin-master.git&lt;/pre&gt;

&lt;p&gt;
current:
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;$ npm i cordova-plugin-sms-retriever-manager
$ npm i https:&lt;span class=&quot;sy0&quot;&gt;//&lt;/span&gt;github.com&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;hanatharesh2712&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ionic-native-sms-retriever-plugin-master.git&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;ionic-native-sms-retriever-plugin-master&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;ionic-native-sms-retriever-plugin-master&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:8,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;3520-4011&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit10&quot; id=&quot;byteowls_capacitor-sms&quot;&gt;@byteowls/capacitor-sms&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://github.com/moberwasserlechner/capacitor-sms&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/moberwasserlechner/capacitor-sms&quot; rel=&quot;ugc nofollow&quot;&gt;https://github.com/moberwasserlechner/capacitor-sms&lt;/a&gt;
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;$ npm i &lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;byteowls&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;capacitor-sms
$ npx cap &lt;span class=&quot;kw2&quot;&gt;sync&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;@byteowls\/capacitor-sms&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;byteowls_capacitor-sms&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:10,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;4012-4170&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit11&quot; id=&quot;cordova-plugin-whitelist_deprecatedallowlist&quot;&gt;cordova-plugin-whitelist [DEPRECATED: AllowList]&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://github.com/apache/cordova-plugin-whitelist&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/apache/cordova-plugin-whitelist&quot; rel=&quot;ugc nofollow&quot;&gt;https://github.com/apache/cordova-plugin-whitelist&lt;/a&gt;
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;$ npm &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt; cordova-plugin-whitelist
$ npx cap &lt;span class=&quot;kw2&quot;&gt;sync&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;code bash&quot;&gt;$ ionic cordova plugin add cordova-sms-plugin
$ npm &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--save&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;ionic-native&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sms&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;cordova-plugin-whitelist [DEPRECATED: AllowList]&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;cordova-plugin-whitelist_deprecatedallowlist&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:11,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;4171-4466&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit12&quot; id=&quot;commands&quot;&gt;Commands&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Commands&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;commands&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:13,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;4467-4490&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit13&quot; id=&quot;ionic&quot;&gt;Ionic&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Очень простые команды для работы с Ionic в Visual Studio Code:
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 ionic start - создать темплейт ионик апп с нуля
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 ionic serve - запускать мобапп с иоником в браузере
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 ionic generate - создать новые фичи к мобаппу - directive class page component service module guard
&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;
Для деплоя на мобайл:
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 ionic build / ionic build –prod - сбилдить апп (если билдишь для прода то он включает strict режим и ругается если есть вызов несуществующих методов, используешь any и надо это пофиксить)
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 ionic cap add android - создать апп для андроида (1 раз так сделать)
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 ionic cap copy - скопировать сбилженную папку веба в папку для андроида
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 ionic cap sync - это чтобы синкнуть из андроид папки изменения (добавление нового плагина) назад в веб код
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 ionic cap open android - открыть в Андроид студио проект андроида сгенеренный или самому открыть
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 ng add @angular/pwa - сделать свой апп PWA (добавляется service worker, app manifest + иконки)
&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;


&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Ionic&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;ionic&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:13,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;4491-5960&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit14&quot; id=&quot;capacitor&quot;&gt;Capacitor&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co4&quot;&gt;$ &lt;/span&gt;ionic capacitor build android&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Capacitor&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;capacitor&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:13,&amp;quot;secid&amp;quot;:14,&amp;quot;range&amp;quot;:&amp;quot;5961-6038&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit15&quot; id=&quot;cordova&quot;&gt;Cordova&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;pre class=&quot;code bash&quot;&gt;$&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Cordova&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;cordova&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:14,&amp;quot;secid&amp;quot;:15,&amp;quot;range&amp;quot;:&amp;quot;6039-&amp;quot;} --&gt;</description>
    </item>
    <item rdf:about="http://178.140.10.58:8080/doku.php?id=mobile:prepaire">
        <dc:format>text/html</dc:format>
        <dc:date>2023-07-16T21:29:16+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Подготовка</title>
        <link>http://178.140.10.58:8080/doku.php?id=mobile:prepaire</link>
        <description>&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:ionic&amp;amp;do=showtag&amp;amp;tag=ionic&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:ionic&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; ionic&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:cordova&amp;amp;do=showtag&amp;amp;tag=cordova&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:cordova&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; cordova&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;p&gt;
.
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;подготовка&quot;&gt;Подготовка&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;42-77&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;java&quot;&gt;Java&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;pre class=&quot;code bash&quot;&gt;$ &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; apt search jdk-headless
$ &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; apt &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt; default-jdk-headless
$ &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; apt &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt; openjdk-&lt;span class=&quot;nu0&quot;&gt;8&lt;/span&gt;-jdk-headless
$ &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; apt &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt; openjdk-&lt;span class=&quot;nu0&quot;&gt;11&lt;/span&gt;-jdk-headless
$ &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; apt &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt; openjdk-&lt;span class=&quot;nu0&quot;&gt;17&lt;/span&gt;-jdk-headless
$ &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; apt &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt; openjdk-&lt;span class=&quot;nu0&quot;&gt;18&lt;/span&gt;-jdk-headless
$ &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; apt &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt; openjdk-&lt;span class=&quot;nu0&quot;&gt;19&lt;/span&gt;-jdk-headless
$ &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; apt &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt; openjdk-&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;-jdk-headless
$ &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; apt &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt; openjdk-&lt;span class=&quot;nu0&quot;&gt;21&lt;/span&gt;-jdk-headless
$ update-java-alternatives &lt;span class=&quot;re5&quot;&gt;--list&lt;/span&gt;
$ &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; update-java-alternatives &lt;span class=&quot;re5&quot;&gt;--set&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;path&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;to&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;java&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;version&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Java&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;java&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;78-583&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit3&quot; id=&quot;sdkman&quot;&gt;SDKMAN&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Это инструмент для управления параллельными версиями нескольких комплектов разработки программного обеспечения в большинстве систем на базе Unix. Он предоставляет удобный интерфейс командной строки (CLI) и &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; для установки, переключения, удаления и перечисления кандидатов. Ранее известный как GVM Groovy enVironment Manager.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://sdkman.io&quot; class=&quot;urlextern&quot; title=&quot;https://sdkman.io&quot; rel=&quot;ugc nofollow&quot;&gt;https://sdkman.io&lt;/a&gt;
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;$ curl &lt;span class=&quot;re5&quot;&gt;-s&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;https://get.sdkman.io&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;bash&lt;/span&gt;
$ sdk &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt; gradle 8.2.1&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;SDKMAN&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;sdkman&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;584-1284&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit4&quot; id=&quot;ionic_capacitor_cordova&quot;&gt;Ionic, Capacitor, Cordova&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;pre class=&quot;code bash&quot;&gt;$ npm &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-g&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;ionic&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cli native-run cordova cordova-res cordova jshint
$ npm init &lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;capacitor&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;app&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Ionic, Capacitor, Cordova&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;ionic_capacitor_cordova&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1285-&amp;quot;} --&gt;</description>
    </item>
    <item rdf:about="http://178.140.10.58:8080/doku.php?id=mobile:reactnative">
        <dc:format>text/html</dc:format>
        <dc:date>2023-07-17T00:09:43+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Reactnative</title>
        <link>http://178.140.10.58:8080/doku.php?id=mobile:reactnative</link>
        <description>&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:reactnative&amp;amp;do=showtag&amp;amp;tag=reactnative&quot; class=&quot;wikilink1&quot; title=&quot;tag:reactnative&quot; rel=&quot;tag&quot;&gt;reactnative&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:javascript&amp;amp;do=showtag&amp;amp;tag=javascript&quot; class=&quot;wikilink1&quot; title=&quot;tag:javascript&quot; rel=&quot;tag&quot;&gt;javascript&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:cordova&amp;amp;do=showtag&amp;amp;tag=cordova&quot; class=&quot;wikilink1&quot; title=&quot;tag:cordova&quot; rel=&quot;tag&quot;&gt;cordova&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;p&gt;
.
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;reactnative&quot;&gt;Reactnative&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Reactnative&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;reactnative&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;58-&amp;quot;} --&gt;</description>
    </item>
</rdf:RDF>
