답변이 조금 늦었네요.. ^^
해결은 좀 보셨는지 모르겠습니다.
우선
// 위 두 줄은 Droidgap의 type에서 정의된 것이 아니다.
이 부분은, 제가 잘못 알려 드렸네요..
다음과 같이 해보시기 바랍니다.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.loadUrl("file:///android_asset/www/index.html");
WebSettings webSettings = super.appView.getSettings();
webSettings.setJavaScriptEnabled(true);
super.appView.addJavascriptInterface(new CustomJavascriptInterface(), "aaaaa");
}
그리고, Java에서 사용되는 대부분의 클래스는 import 라는것을 해 주어야 합니다. (java.lang.* 패키지 제외)
// new Handler 부터 여기까지는 하나의 type으로 resolved 될 수 없다.
이 부분은, 해당 클래스 (Handler, Intent 등) 이 import 되지 않아서 그렇습니다.
코드만 봐서는 다음과 같은 것들이 import 되어야 할것으로 보입니다.
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.webkit.WebSettings;
다음은 제가 구성해 본 전체 소스 입니다.
package org.apache.cordova;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.webkit.WebSettings;
public class DroidGap extends CordovaActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.loadUrl("file:///android_asset/www/index.html");
WebSettings webSettings = super.appView.getSettings();
webSettings.setJavaScriptEnabled(true);
super.appView.addJavascriptInterface(new CustomJavascriptInterface(), "aaaaa");
}
private class CustomJavascriptInterface {
public void doShare() {
new Handler().post(new Runnable() {
public void run() {
Intent shareIntent = new Intent (android.content.Intent.ACTION_SEND);
shareIntent.setType("text/plain");
shareIntent.putExtra(Intent.EXTRA_SUBJECT, "제목");
shareIntent.putExtra(Intent.EXTRA_TEXT, "내용");
startActivity(Intent.createChooser(shareIntent, "팝업창 제목"));
}
});
}
}
}
html 소스는 다음과 같습니다.
<html>
<head>
<title></title>
<script src="cordova.js"></script>
<script type="text/javascript">
function callApp() {
window.aaaaa.doShare();
}
</script>
</head>
<body>
<a href="javascript:callApp();">Click</a>
</body>
</html>
그리고... 에러메시지는 한글로 번역해 주시면 더 어려워요 ^^
그냥
// Handler cannot be resolved to a type
라고 적어 주시는게 알아보기 쉽습니다.
수고하세요~