Capacitorの情報まとめとnative-pluginの作り方
はじめに
CapacitorとはクロスプラットフォームWebアプリケーションのネイティブブリッジ。
1つのコードベースでiOS、Android、Electron、Web上でNative SDKを起動出来る。Ionic Frameworkアプリ用に最適化されていて、あらゆるWebアプリフレームワークで使用できる。
公式ドキュメント
Cordovaとの相違点
CordovaのようにWebView上にWebページを表示するが、ページの一部、たとえばトーストだけはネイティブUIを利用するといった、ネイティブとWebViewの共存を行える点が特徴。
Web アプリケーション用のPWA。
オリジナルnative-plugin作成手順(Web版)
プロジェクト作成
ionicを使いプロジェクトの生成。
$ ionic start hoge blank
ここでionicのSDKを使うか聞かれるのでnを選択。
プロジェクトに移動
$ cd [project-name]
$ npm install
Capacitorのインストール
下記のコマンドでインストール。
$ npm install --save @capacitor/core @capacitor/cli
Capacitorの下記コマンドで初期設定
アプリ名とバンドル名を聞かれるので入力
$ npx cap init
お好みのプラットフォームの追加
$ npx cap add android
$ npx cap add ios
$ npx cap add electron
オリジナルnative pluginの作成
下記のコマンドを入力してplugin を作成する。
$ npx @capacitor/cli plugin:generate
これにより、新しいプラグインに関する情報の入力を求めるウィザードが起動するので入力する。
例:
✏️ Creating new Capacitor plugin
//npmで使用する名前の設定
? Plugin NPM name (snake-case): LogDasu
//ドメインの識別子。用途はJavaのパッケージ名
? Plugin id (domain-style syntax. ex: com.example.plugin)com.example.plugin
//JavaとSwiftで使用されるクラスの初期名。
? Plugin class name (ex: AwesomePlugin) LogDasuNen
//pluginの説明
? description: log dasuyo
//PluginのソースコードがホストされるgitリポジトリのURL
? git repository:
//作者
? author: Shinjiro Suzuki
//デフォでOKそのままEnter
? license: MIT
//Yで作成される。
? package.json will be created, do you want to continue? Y/n
pluginをいじる
ここでいじるファイルは下記のファイルです。
LogDasu/src/web.ts
自分はログ出すだけでいいので下記だけ追記しました。
console.log('ログだしたよ!');
pluginをnpm publishするorローカルでインストールして使う
自身で作ったpluginはそのままimportして使用しようとするとpluginがroot配下にないからダメとエラーがでます。
pluginをnpm publishする
このパターンは特にpublishしても良いよーという奴専用です
npm publishしてnpm install [plugin name]してnode_modulesの中に入れてimportして使用する必要があります。
初めてnpm publishしたが、npmでめっちゃ詰まりました。
この件は今度また別でブログあげます…
ローカルでインストールして使う
これは簡単で下記の様にインストールするとnode_modulesに入ってくれます。
例:
$npm install /Users/s-suzuki/Desktop/hoge/LogDasu
home.tsにインポートしてちゃんと動くか確認する
エラーが出ずログを出してれば成功!!
不具合
5月9日現在Beta版になっておりGW中にテコ入れがあった為、公式のドキュメントとnpmでインストールした物とでは相違点がありドキュメント通りにiosとandroidのプラグインを作成しようとすると失敗する。
(確認出来ている物でyour-plugin/ios/Plugin/Plugin.xcworkspaceが無くなっておりX-codeで開く事が出来ない。
Androidに関してもyour-plugin/android/your-pluginが無いのでAndroid Studioが開けない。)
おわりに
CapacitorはBeta版なんだなと。
実用化するにはちょっと早い気がします。
いつの日かまたCapacitorを使いnative-pluginを作ってみたいと思います。
Author And Source
この問題について(Capacitorの情報まとめとnative-pluginの作り方), 我々は、より多くの情報をここで見つけました https://qiita.com/shinjiro-suzuki/items/38eedbcd2d5a8ba8530b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .