Closed8

Webのやつで楽にスマホアプリを作りたい

創好リナ創好リナ

ネイティブコードを書く

  • 公式ドキュメントの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のほうが使いたい気がしたので調べた

https://github.com/Tommertom/svelte-ionic-app

ionicが公式でサポートしているフレームワークにはないがプレーンなJSを使えるので
svelteをviteでionicしてるサンプルがあった
使いやすそうだしやって見る価値はあるか

創好リナ創好リナ

Capacitorが良さそう(前のコメントでtypoしてるのは内緒)
一旦解決ということで

このスクラップは2022/08/15にクローズされました