我是Android和Java的新手。我已經構建了一個使用HTML/Javascript的應用程序,效果很好。Android - 如何從JavaScript運行意圖
我現在需要創建一個活動來啓動電子郵件客戶端,填充主題和正文,並且(艱難部分)添加文件附件。我一直無法從JavaScript內部做到這一點,mailto:
將不會附加文件。
所以我需要通過Java來完成這一點,並從JavaScript執行它。我認爲這可以通過使用addJavaScriptInterface
來完成,但我找不到任何詳細的文檔或示例。
我該怎麼做?
這裏是我閱讀文檔後至今:
月2日更新代碼:
MainActivity.java
public class MainActivity extends DroidGap {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setIntegerProperty("splashscreen", R.drawable.splash);
super.loadUrl("file:///android_asset/www/index.html", 1000);
WebView mWebView;
mWebView = (WebView)findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.addJavascriptInterface(new JavaScriptInterface(), "Android");
}
}
JavaScriptInterface.java
public class JavaScriptInterface {
public void doEmail(){
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType("text/html");
sendIntent.putExtra(android.content.Intent.EXTRA_TEXT,"test text");
sendIntent.putExtra(Intent.EXTRA_SUBJECT,"test subject");
sendIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
sendIntent.putExtra(Intent.EXTRA_STREAM,Uri.parse("file://test co.html"));
startActivity(Intent.createChooser(sendIntent, "Send email..."));
}
}
然後我會通過使用Android.doEmail()通過JavaScript引用意圖。
與上面的代碼我得到在Eclipse 1所述的方法startActivity(意向)2點誤差是未定義的類型 - JavaScriptInterface 2.網頁視圖不能得到解決或不是一個場 - MainActivity
什麼我做錯了嗎?
我已經有一個'MainActivity'。我會在這裏包括其他的東西嗎? 'public class MainActivity extends DroidGap {/ **當活動首次創建時調用。 */@Override public void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState); super.setIntegerProperty(「splashscreen」,R.drawable.splash); super.loadUrl(「file:///android_asset/www/index.html」,1000); }}' – user899641
對不起,我不知道如何使代碼整潔如上... – user899641
http://stackoverflow.com/questions/2727763/communication-between-android-java-and-phonegap-javascript – adamcodes