Soy nuevo en Android y Java. He construido una aplicación usando HTML/Javascript que funciona muy bien.Android - Cómo ejecutar el intento desde JavaScript
Ahora necesito crear una actividad que inicie el cliente de correo electrónico, rellene el asunto y el cuerpo, y (la parte difícil) agrega un archivo adjunto. No he podido hacer esto desde JavaScript, mailto:
no adjuntará el archivo.
Así que tengo que lograr esto a través de Java y ejecutarlo desde JavaScript. Creo que esto se puede hacer usando addJavaScriptInterface
, pero no puedo encontrar ninguna documentación detallada o ejemplos para desaprovechar.
¿Cómo podría hacer esto?
Esto es lo que tengo hasta ahora después de leer la documentación:
segunda actualización de código:
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..."));
}
}
Entonces Haría referencia al intento a través de JavaScript usando Android.doEmail() .
Con el código anterior que estoy recibiendo 2 errores en Eclipse 1. El método startActivity (Intención) no está definido para el tipo - JavaScriptInterface 2. WebView no se puede resolver o no es un campo - MainActivity
Lo estoy haciendo mal?
Ya tengo una 'MainActivity'. ¿Incluiría las otras cosas aquí? 'public class MainActivity extends DroidGap {/ ** Se llama cuando la actividad se crea por primera vez. */@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
Lo siento, no sé cómo hacer el código limpio como el anterior ... – user899641
http://stackoverflow.com/questions/2727763/communication-between-android-java-and-phonegap-javascript – adamcodes