在 nativescript 中編寫 java 程式碼並直接在 javascript 中使用它
這是 Android studio 中專案結構的影象:
這是 nativescript 專案的專案結構圖:
如你所見,它們是一樣的。所以當我們在 android studio 中編寫時,我們可以在 nativescript 中編寫 java 程式碼。
我們想將 Toast 新增到 nativescript 的預設應用程式中。在建立一個新的 nativescript 專案之後建立一個目錄 java/org/example
目錄,如下所示:
在 example
目錄中建立一個新的 MyToast.java
檔案;
MyToast.java:
package org.example;
import android.widget.Toast;
import android.content.Context;
public class MyToast{
public static void showToast(Context context,String text ,String StrDuration ){
int duration;
switch (StrDuration){
case "short":
duration = Toast.LENGTH_SHORT;
break;
case "long":
duration = Toast.LENGTH_LONG;
break;
}
Toast.makeText(context,text, Toast.LENGTH_SHORT).show();
}
}
注意 :不要忘記包名;
app.component.ts:
import {Component} from "@angular/core";
let application = require("application");
declare var org:any;
@Component({
selector: "my-app",
templateUrl: "app.component.html",
})
export class AppComponent {
public counter: number = 16;
public get message(): string {
if (this.counter > 0) {
return this.counter + " taps left";
} else {
return "Hoorraaay! \nYou are ready to start building!";
}
}
public onTap() {
this.counter--;
org.example.MyToast.showToast(application.android.context,"You pressed the button","short");
}
}
現在,當你按下按鈕時,它會顯示一個祝酒詞;
備註 :
- showToast 函式接受上下文將它傳遞給
Toast.makeText
,我們以這種方式向它傳遞了一個上下文:application.android.context
- TypeScript 不知道什麼是
org
is,所以我們宣稱:declare var org:any;