Tôi mới sử dụng Android và Java. Tôi đã xây dựng một ứng dụng bằng HTML/Javascript đang hoạt động tốt.Android - Cách chạy ý định từ JavaScript
Bây giờ tôi cần tạo một hoạt động khởi chạy ứng dụng email, điền vào chủ đề và nội dung, và (phần khó khăn) thêm tệp đính kèm. Tôi không thể thực hiện việc này từ bên trong JavaScript, mailto:
sẽ không đính kèm tệp.
Vì vậy, tôi cần thực hiện điều này thông qua Java và thực thi nó từ JavaScript. Tôi nghĩ rằng điều này có thể được thực hiện bằng cách sử dụng addJavaScriptInterface
nhưng tôi không thể tìm thấy bất kỳ tài liệu hoặc ví dụ chi tiết nào để tắt.
Tôi làm cách nào để thực hiện việc này?
Dưới đây là những gì tôi có cho đến nay sau khi đọc tài liệu:
2nd cập nhật mã:
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..."));
}
}
Sau đó, Tôi sẽ tham khảo ý định thông qua JavaScript bằng cách sử dụng Android.doEmail() .
Với đoạn mã trên tôi nhận được 2 lỗi trong Eclipse 1. Phương pháp startActivity (Ý định) là undefined cho các loại - JavaScriptInterface 2. webview không thể được giải quyết hay không là một lĩnh vực - MainActivity
gì tôi đang làm sai à?
Tôi đã có 'MainActivity'. Tôi có bao gồm những thứ khác ở đây không? 'public class MainActivity mở rộng DroidGap {/ ** Được gọi khi hoạt động được tạo lần đầu tiên. */@Override public void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); super.setIntegerProperty ("splashscreen", R.drawable.splash); super.loadUrl ("tệp: ///android_asset/www/index.html", 1000); }} ' – user899641
Xin lỗi, tôi không biết cách làm cho mã gọn gàng như trên ... – user899641
http://stackoverflow.com/questions/2727763/communication-between-android-java-and-phonegap-javascript – adamcodes