PhoneGap には WebActivities がなく、Activity クラスと index.html ページしかないため、これを行う方法がわかりません。私はこのような MainActivity を持っています...
public class MastersProjectActivity extends DroidGap
{
@JavascriptInterface
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// Set by <content src="index.html" /> in config.xml
//super.loadUrl(Config.getStartUrl());
super.loadUrl("file:///android_asset/www/index.html");
Context myCntxt = getApplicationContext();
TelephonyManager tMgr = (TelephonyManager)myCntxt.getSystemService(Context.TELEPHONY_SERVICE);
String curPhoneNumber = tMgr.getLine1Number();
Log.d("PhoneNumber", curPhoneNumber);
}
}
...そして、 PhoneGap にUI 全体が含まれている index.html ページで curPhoneNumber を使用できるようにしたいと考えています。どうすればこれを行うことができるかについてのアイデアはありますか? 私は Android 開発全般についてまったくの初心者であり、PhoneGap についてもまったくの初心者です。正直なところ、index.html ページが Android UI としてどのようにレンダリングされるのか、まだよくわかりません。index.html ページを WebActivity などでラップする必要がありますか? これにより、PhoneGap が .apk を作成する方法に問題が生じるかどうかはわかりません。
編集-実装しようとしましたが、うまくいきませんでした"interface.getPhoneNumber()"
. 'MyInterface'
クラスを間違って実装した可能性がありますか?これが私が作ったクラスです....
public class MyInterface extends DroidGap {
private MastersProjectActivity _activity;
private CordovaWebView _view;
public MyInterface(MastersProjectActivity activity, CordovaWebView view) {
this._activity = activity;
this._view = view;
}
@JavascriptInterface
public String getPhoneNumber() {
Context myCtxt = getApplicationContext();
return ((TelephonyManager)myCtxt.getSystemService(Context.TELEPHONY_SERVICE)).getLine1Number();
}
}
...そして、メインアクティビティでJavaScriptインターフェースを公開しました...
@Override
public void onCreate(Bundle savedInstanceState)
{
.
.
.
super.appView.addJavascriptInterface(new MyInterface(this, appView), "interface");
}
...そしてalert("interface.getPhoneNumber()")
、index.html
ファイルを呼び出しますが、アラートが表示された文字列だけが表示され、実際には呼び出されませんgetPhoneNumber()
。