나는 다음 단계는 안드로이드 웹보기에서 코르도바를 구현하기위한 올바른 경우 누군가가 나에게하는 단 몇 분을 필요로안드로이드 webview에서 phonegap/cordova를 구현하는 방법은 무엇입니까?</p> <p>편집 :
1) : 좋아, 나는 마침내이 오른쪽 단계는 작업을 얻었다 나는 프로젝트 생성 : cordova create hello com.example.hello HelloWorld
을하고 폴더를 입력
2) cordova platform add android
, cordova run android
(cordova.jar이 생성) => 응용 프로그램이 => 장치 출시 나는 cordova_layout.xml을 만들 수)
3
주심의 준비가되어 "/ res/layout"에서 다음 코드를 사용합니다 :<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<org.apache.cordova.CordovaWebView
android:id="@+id/cordova_web_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1" />
</LinearLayout>
4) 일식에서 "기존 프로젝트"로 (프로젝트 가져 오기) 수입 후 주요 자바 파일에 추가 :
public class HelloWorld extends Activity implements CordovaInterface {
private CordovaWebView cordova_webview;
private String TAG = "CORDOVA_ACTIVITY";
private final ExecutorService threadPool = Executors.newCachedThreadPool();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.cordova_layout);
cordova_webview = (CordovaWebView) findViewById(R.id.cordova_web_view);
// Config.init(this);
String url = "file:///android_asset/www/index.html";
cordova_webview.loadUrl(url, 10000);
}
@Override
protected void onPause() {
super.onPause();
Log.d(TAG, "onPause");
}
@Override
protected void onResume() {
super.onResume();
Log.d(TAG, "onResume");
}
@Override
protected void onDestroy() {
super.onDestroy();
if (this.cordova_webview != null) {
this.cordova_webview
.loadUrl("javascript:try{cordova.require('cordova/channel').onDestroy.fire();}catch(e){console.log('exception firing destroy event from native');};");
this.cordova_webview.loadUrl("about:blank");
cordova_webview.handleDestroy();
}
}
@Override
public Activity getActivity() {
return this;
}
@Override
public ExecutorService getThreadPool() {
return threadPool;
}
@Override
public Object onMessage(String message, Object obj) {
Log.d(TAG, message);
if (message.equalsIgnoreCase("exit")) {
super.finish();
}
return null;
}
@Override
public void setActivityResultCallback(CordovaPlugin cordovaPlugin) {
Log.d(TAG, "setActivityResultCallback is unimplemented");
}
@Override
public void startActivityForResult(CordovaPlugin cordovaPlugin,
Intent intent, int resultCode) {
Log.d(TAG, "startActivityForResult is unimplemented");
}
}
가 참고 : 활동 이름이 매니페스트에서 하나와 일치해야합니다 .xml
희망이 있으면 도움이 될 것입니다. 좋은 하루 되세요!
어디에서 "개인 최종 ExecutorService threadPool = Executors.newCachedThreadPool()"입니까? – Regent
phonegap 페이지에있는 코드 만 추가하면 @Regent가됩니다. : : @override public ExecutorService getThreadPool() { return threadPool; } 그것은 나에게 오류를 준다. 나는이 코드를 추가해야한다. 그래서이 코드를 추가해야한다. 그렇지 않다면 "return threadpool"이 getthreadpool()과 같은 것으로 transfom 될 것이다. –
logcat 오류를 게시하십시오. –