特別注意 android 專案的包名 必須為 com.example.hello,否則編譯不會通過。
檔案結構
cordova-plugin-activity
|-- src // 平臺原始碼
|-- android // Android 平臺原始碼
|-- activity // activity java 程式碼
|-- FirstActivity.java //要新增加java程式碼
|-- layout // activity layout 佈局程式碼
|-- activity_first.xml //要新新增的xml
|-- FirstPlugin.java // 外掛 主類
|-- www // 呼叫原生的js程式碼
|-- package.json //
|-- plugin.xml // 外掛組態檔
package cordova.plugin.first.plugin.activity;
import android.app.Activity;
import android.os.Bundle;
import com.example.hello.R;
public class FirstActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_first);
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="cordova.plugin.first.plugin.activity.FirstActivity">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="這是一個新的Activity"
tools:layout_editor_absoluteX="152dp"
tools:layout_editor_absoluteY="180dp"
tools:ignore="MissingConstraints" />
</LinearLayout>
<?xml version='1.0' encoding='utf-8'?>
<plugin id="cordova-plugin-activity" version="1.0.0" xmlns="http://apache.org/cordova/ns/plugins/1.0"
xmlns:android="http://schemas.android.com/apk/res/android">
<name>FirstPlugin</name>
<js-module name="FirstPlugin" src="www/FirstPlugin.js">
<clobbers target="FirstPlugin"/>
</js-module>
<platform name="android">
<config-file parent="/*" target="res/xml/config.xml">
<feature name="FirstPlugin">
<param name="android-package" value="cordova.plugin.first.plugin.FirstPlugin"/>
</feature>
</config-file>
<!--新增程式碼1 start-->
<config-file target="AndroidManifest.xml" parent="/manifest/application">
<activity android:name="cordova.plugin.first.plugin.activity.FirstActivity"></activity>
</config-file>
<!--新增程式碼1 end -->
<config-file parent="/*" target="AndroidManifest.xml"></config-file>
<source-file src="src/android/FirstPlugin.java" target-dir="src/cordova/plugin/first/plugin"/>
<!--新增程式碼2 start-->
<source-file src="src/android/activity/FirstActivity.java" target-dir="src/cordova/plugin/first/plugin/activity"/>
<resource-file src="src/android/layout/activity_first.xml" target="res/layout/activity_first.xml"/>
<!--新增程式碼2 end -->
</platform>
</plugin>
// 到基於cordova的專案中,輸入以下命令
cordova plugin add [外掛路徑]
// 也可以安裝我的範例外掛
cordova plugin add https://github.com/waliu/cordova-plugin-study/tree/master/cordova-plugin-activity
try {
// console.log(window.FirstPlugin);
window.FirstPlugin.testFirstPlugin((res)=>{
console.log(res);
},(error)=>{
},null);
} catch (e) {
console.log(e);
console.log("請在真機或者模擬器執行");
}