Closed8
Webのやつで楽にスマホアプリを作りたい
使用するやつ
- Ionic v6
- Capacitor
ネイティブコードを書く
- 公式ドキュメントの
Echo
のプラグインをやってみる
フロント側
plugins.ts
import { registerPlugin } from '@capacitor/core'
interface EchoPlugin {
echo(options: { value: string }): Promise<{ value: string }>
}
export const Echo = registerPlugin<EchoPlugin>('Echo')
使う側.vue
import { ref } from 'vue'
import { Echo } from '@/plugins'
const test = ref("yet")
Echo.echo({value: "native hello"}).then((ret) => {
test.value = ret.value
console.log("Done")
})
Android側
Echo.java
import com.getcapacitor.JSObject;
import com.getcapacitor.Plugin;
import com.getcapacitor.PluginCall;
import com.getcapacitor.PluginMethod;
import com.getcapacitor.annotation.CapacitorPlugin;
@CapacitorPlugin(name = "Echo")
public class Echo extends Plugin {
@PluginMethod
public void echo(PluginCall call) {
String value = call.getString("value");
JSObject ret = new JSObject();
ret.put("value", value + " from android");
call.resolve(ret);
}
}
MainActivity.java
import android.os.Bundle;
import com.getcapacitor.BridgeActivity;
public class MainActivity extends BridgeActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
this.registerPlugin(Echo.class); // 先に登録
// ドキュメントだとここの上下が逆で動かなくてブチ切れたので注意
super.onCreate(savedInstanceState);
}
}
Kotlin使えるようにしたい
ドキュメントには「Kotlinに変換したらおk」しか書いてないけど
やってもファイルがKotlinになるだけでビルドできるようにはならない問題
プロジェクトルートのところで右クリックしてkotlinに変換押したらできた🎉
ふとVueじゃなくてSvelteのほうが使いたい気がしたので調べた
ionicが公式でサポートしているフレームワークにはないがプレーンなJSを使えるので
svelteをviteでionicしてるサンプルがあった
使いやすそうだしやって見る価値はあるか
Capacitorが良さそう(前のコメントでtypoしてるのは内緒)
一旦解決ということで
このスクラップは2022/08/15にクローズされました