사용자 정의 Cordova 플러그 인 설명
하 이브 리드 애플 리 케 이 션 에 서 는 기 존의 코르도바 플러그 인 을 통 해 H5 에서 모 바 일 네 이 티 브 기능 을 쉽게 호출 할 수 있 습 니 다.기 존의 Cordova 플러그 인 은 평소의 대부분의 개발 수 요 를 만족 시 킬 수 있 습 니 다. 그러나 가끔 은 적당 한 플러그 인 을 찾 지 못 하거나 찾 은 플러그 인 에 만족 하지 않 는 부분 이 있 으 면 플러그 인 을 만 들 거나 고 쳐 써 야 합 니 다. 이 럴 때 Cordova 플러그 인 에 관 한 지식 을 알 아야 합 니 다.
그럼 Cordova 플러그 인의 기본 포 인 트 는 무엇 입 니까?사실은 네 이 티 브 코드 호출 방법 을 js 의 통일 인터페이스 로 매 핑 하여 H5 가 사용 할 수 있 도록 하 는 것 일 뿐이다.
Cordova 사용자 정의 플러그 인의 공식 문서
2. 기 존의 응용 구 조 를 관찰한다.
Cordova 기술 을 기반 으로 한 hybird app 의 개발 디 렉 터 리 를 열 고 플랫폼 (android, ios 등) 과 플러그 인 을 설치 한 적 이 있 으 면 구조 가 대체적으로 이 모양 인 것 을 발견 할 수 있 습 니 다.
├── platforms
| ├── android
| ├── ios
| └── ...
├── plugins
| ├── org.apache.cordova.device
| └── ...
├── config.xml
└── www
이곳 의 platforms 는 우리 가 지원 하 는 플랫폼 디 렉 터 리 입 니 다. plugins 는 우리 가 설치 한 플러그 인 디 렉 터 리 입 니 다. config. xml 는 응용 설정 정보 (응용 이름, 설명 등) 이 고 ww 는 우리 의 웹 프로젝트 디 렉 터 리 입 니 다.
즉, 새로운 플러그 인 을 만 들 고 설치 하면 plugins 디 렉 터 리 에 추가 되 고 다른 파일 정 보 를 수정 할 수 있 습 니 다.그럼 다음 단 계 는 검증 을 시작 하 겠 습 니 다.
3. plugman 을 사용 하여 Cordova 플러그 인 개발
독립 된 플러그 인의 디 렉 터 리 기본 구 조 는 다음 과 같 습 니 다.
MyToast
├── src
| ├── android
| | └── MyToast.java
| ├── ios
| └── ...
├── www
| └── MyToast.js
└── plugin.xml
src 는 각 플랫폼 의 네 이 티 브 코드 를 저장 합 니 다. plugin. xml 는 플러그 인 설명 및 설정 파일 입 니 다. ww 는 웹 프로젝트 디 렉 터 리 (사실은 MyToast. js 라 는 js 미들웨어) 입 니 다. 우 리 는 수 동 으로 이 몇 개의 디 렉 터 리 와 파일 을 만 들 수 있 습 니 다. 그러나 이것 은 좋 은 방식 이 아 닙 니 다. 효율 이 높 지 않 기 때문에 추천 하 는 방식 은 plumam 을 사용 하 는 것 입 니 다.1. 우선 plumam 명령 행 도 구 를 설치 합 니 다.
npm install -g plugman
2 、 설치 후 plugin 만 들 기
plumam 을 사용 하여 플러그 인 을 만 드 는 명령 은:
plugman create --name
pluginName
--plugin_id pluginID
--plugin_version version
[--path path
] [--variable NAME=VALUE
] 매개 변수 설명:
pluginName: MyToast 와 같은 플러그 인 이름;pluginID: 플러그 인 id, 예 를 들 어: cordova - plugin - mytoast;version: 버 전 번호, 예 를 들 어: 0.0.1;path: 플러그 인 이 저장 하 는 절대 또는 상대 경로;variable NAME = VALUE: Woodstream 과 같은 확장 인자
따라서 명령 줄 에 다음 코드 를 입력 하 십시오.
plugman create --name MyToast --plugin_id cordova-plugin-mytoast --plugin_version 0.0.1
그러면 현재 디 렉 터 리 에 MyToast 플러그 인 을 만 들 고 플러그 인 디 렉 터 리 에 들 어가 plugin. xml 를 열 어 보 며 다음 내용 과 설명 을 주의 하 십시오.plugin
- id:
- version:
- js-module
src:js (www js)
name:
clobbers/merges
target:H5 js (ts )
- platform
name: android | ios
source-file
src:
tartget-dir:
feature
name:js ( )
uses-permission:
즉, 우 리 는 이러한 플러그 인 을 쓸 수 있 습 니 다. 원본 코드 를 쓰 지 않 고 권한 을 설정 하고 파일 을 복사 하기 위해 서 입 니 다.
plugin. xml 파일 을 소화 한 후 명령 을 눌 러 플러그 인 디 렉 터 리 에 들 어 갑 니 다.
cd MyToast
지원 플랫폼 plugman platform add --platform_name android
plugman platform add --platform_name ios
을 추가 하면 각각 src / android / myToast. java 와 src / ios / MyToast. m 두 개의 파일 을 만 듭 니 다. 여 기 는 android 코드 만 보 여 줍 니 다. 그래서 MyToast. java 를 열 어 관찰 합 니 다.public class MyToast extends CordovaPlugin {
@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
if (action.equals("coolMethod")) {
String message = args.getString(0);
this.coolMethod(message, callbackContext);
return true;
}
return false;
}
private void coolMethod(String message, CallbackContext callbackContext) {
if (message != null && message.length() > 0) {
callbackContext.success(message);
} else {
callbackContext.error("Expected one non-empty string argument.");
}
}
}
그 중에서
execute
은 필수 적 인 방법 이다. www
디 렉 터 리 에 있 는 MyToast.js
과 관련 된 것 이다. MyToast.js
와 MyToast.java
가 어떻게 관련 되 는 지 는 Cordova 설명 plugin.xml
에 의 해 처리 되 고 내부 세부 사항 은 알 필요 가 없 으 며 방법 형식 에 따라 작성 하면 된다.CallbackContext
컨 텍스트 를 바 꾸 기 위해 coolMethod
선택 할 수 있 는 기본 적 인 생 성 예제 방법 입 니 다. 보통 원생 코드 를 쓰 고 우 리 는 그것 을 우리 가 원 하 는 것 으로 바 꾸 었 습 니 다. showToast
그리고 기본 적 인 원생 코드 를 보충 한 다음 에 마지막 파일 은 이렇게 되 었 습 니 다.public class MyToast extends CordovaPlugin {
@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
if (action.equals("showToast")) {
String message = args.getString(0);
this.showToast(message, callbackContext);
return true;
}
return false;
}
private void showToast(String message, CallbackContext callbackContext) {
if (message != null && message.length() > 0) {
Activity activity = this.cordova.getActivity();
Toast.makeText(activity, message, Toast.LENGTH_SHORT).show();
callbackContext.success(message);
} else {
callbackContext.error("Expected one non-empty string argument.");
}
}
}
그리고 www / MyToast. js 를 열 면 다음 과 같이 수정 합 니 다.
//showToast js ,
exports.showToast = function(msg, success, error) {
//"showToast" MyToast.java action
exec(success, error, "MyToast", "showToast", [msg]);
};
3. package. json 파일 을 만 드 는 것 은 원래 상기 절 차 를 마치 면 하나의 플러그 인 이 완 료 됩 니 다. 그러나 나중에 Cordova 버 전 은 package. json 을 추가 하여 플러그 인 을 관리 하 라 고 요 구 했 습 니 다. plumam 은 우리 에 게 이런 파일 을 만 들 지 않 았 습 니 다. 그래서 우 리 는 수 동 으로 만 들 었 습 니 다.
npm init
명령 을 통 해 package. json 을 만 들 었 습 니 다.안에 있 는 인 자 는 plugin. xml 에서 가 져 오 면:{
"name": "MyToast",
"version": "0.0.1",
"description": "demo",
"cordova": {
"id": "com.demo.mytoast",
"platforms": [
"android"
]
},
"keywords": [],
"author": "demo",
"license": "MIT"
}
이런 플러그 인 은 개발 이 완성 되 었 다.
4. 개 발 된 플러그 인 설치
기 존 프로젝트 가 없 으 면 새로운 Cordova 프로젝트 를 만들어 테스트 할 수 있 습 니 다:
cordova create hello com.example.hello HelloWorld
주:hello: 프로젝트 폴 더 이름 com. example. hello: 프로젝트 패키지 이름 HelloWorld: 프로젝트 이름
그리고 이 Cordova 프로젝트 디 렉 터 리 에 들 어가 서 평소 플러그 인 을 추가 하 는 것 처럼 다음 명령 을 실행 합 니 다. (add 뒤 에는 플러그 인 이 있 는 로 컬 또는 네트워크 경로):
cordova plugin add /Users/cordova/MyToast
항목 이 있 고 ionic 항목 이 있 으 면 명령 전에 ionic: ionic cordova plugin add /Users/cordova/MyToast
을 추가 합 니 다.ionic 2 이상 에서 사용 할 때 임의의 ts 파일 을 열 고 머리 에 다음 과 같이 설명 합 니 다.
declare let cordova: any;
그리고 호출 하면 됩 니 다. (일반 js 호출 이 라면 위의 단 계 를 절약 할 수 있 습 니 다): cordova.plugins.MyToast.showToast("hello"); // success, error
기타 명령플러그 인 삭제:
ionic cordova plugin remove XXXXX( plugin_id)
설 치 된 플러그 인 보기 ionic cordova plugin list
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.