我是 Android 和 Java 的新手。我使用 HTML/Javascript 构建了一个运行良好的应用程序。
我现在需要创建一个 Activity 来启动电子邮件客户端、填写主题和正文,以及(困难的部分)添加文件附件。我无法从 JavaScript 中执行此操作,mailto:
不会附加文件。
因此我需要通过 Java 完成此操作并从 JavaScript 执行它。我认为这可以通过使用 addJavaScriptInterface
来完成,但我找不到任何详细的文档或示例。
我该怎么做?
这是我阅读文档后到目前为止的内容:
第二次更新代码:
主 Activity .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");
}
}
JavaScript接口(interface).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 引用 Intent 。
使用上面的代码,我在 Eclipse 中遇到了 2 个错误 1. 方法 startActivity(Intent) 未定义类型 - JavaScriptInterface 2. webview无法解析或不是字段-MainActivity
我做错了什么?
最佳答案
This documentation告诉你具体怎么做。
看起来主要有三个步骤:
- 在 Android 中创建您的“接口(interface)”类
- 将此“接口(interface)”的实例添加到您正在使用的
WebView
。 - 从您的 JavaScript 调用接口(interface)。
关于java - Android - 如何从 JavaScript 运行 Intent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7233684/