我想首先说我不是一个Java开发人员或任何Android开发人员。我在SO上找到的用于解决我的问题的链接并非特定于WL,我不确定将“解决方案”放在构建中的哪个位置。
我有简单的电子邮件链接来启动它:
<a href="mailto:foo@bar.com"></a>
在Android(4.0.4)中,应用程序会崩溃,说它不是受支持的协议。预计会有这么多。
我有一个解决方案(下面,来自SO,丢失链接)似乎是正确的方法,但我不确定这应该去哪里。
@Override
public boolean shouldOverrideUrlLoading(WebViewClient view, String url) {
if( url.startsWith("http:") || url.startsWith("https:") ) {
return false;
}
// Otherwise allow the OS to handle it
else if (url.startsWith("tel:")) {
Intent tel = new Intent(Intent.ACTION_DIAL, Uri.parse(url));
startActivity(tel);
return true;
}
else if (url.startsWith("mailto:")) {
String body = "Enter your Question, Enquiry or Feedback below:\n\n";
Intent mail = new Intent(Intent.ACTION_SEND);
mail.setType("application/octet-stream");
mail.putExtra(Intent.EXTRA_EMAIL, new String[]{"email address"});
mail.putExtra(Intent.EXTRA_SUBJECT, "Subject");
mail.putExtra(Intent.EXTRA_TEXT, body);
startActivity(mail);
return true;
}
return true;
}
显然非常感谢任何帮助!
答案 0 :(得分:0)
在Worklight混合应用程序中,您不需要使用本机代码来使用mailto:
等功能。
要使其正常工作,即:单击将打开电子邮件屏幕的链接以供用户填写主题和消息,您可以按照以下步骤操作。如果您需要更多功能,请在您的问题中详细说明:
确保您使用的是适用于您正在使用的Worklight版本的最新iFix(due to recently fixed Cordova security bugs that affect this functionality)。这可以从Eclipse Marketplace或IBM Fix Central获得。
请按以下步骤操作:
在native \ res \ xml \ config.xml中,删除并添加以下行:
- <access origin="*"/>
+ <access origin="mailto://*" launch-external="true" />
在共同的\ index.html中,我尝试了:
<a href="mailto:my@email.address?Subject=Hello%20again">Send email</a>
结果是(取决于您的手机设置):要么获得设置电子邮件帐户的选项,请选择从哪个帐户发送邮件,或者获取电子邮件撰写屏幕。