【发布时间】:2021-07-13 01:51:27
【问题描述】:
您好,我正在尝试在我的网站上创建一个名为“打开我的收件箱”的按钮。 (哪个用户可以快速打开他们的电子邮件收件箱来验证收到的电子邮件以进行帐户验证) 当用户单击该按钮时,它应该显示移动设备上可用的电子邮件应用程序,例如(gmail、yahoo 或默认)
我知道 mailto: 链接,但是有什么解决方案可以打开默认或其他电子邮件应用程序
【问题讨论】:
标签: android html web mobile-website
您好,我正在尝试在我的网站上创建一个名为“打开我的收件箱”的按钮。 (哪个用户可以快速打开他们的电子邮件收件箱来验证收到的电子邮件以进行帐户验证) 当用户单击该按钮时,它应该显示移动设备上可用的电子邮件应用程序,例如(gmail、yahoo 或默认)
我知道 mailto: 链接,但是有什么解决方案可以打开默认或其他电子邮件应用程序
【问题讨论】:
标签: android html web mobile-website
从下面选择。自从我知道以来,Trick 就在mailto 中可用。
将会发生的是它会触发一个意图或有时称为本机意图。
示例:在桌面上,如果系统中配置了电子邮件客户端,它将启动该客户端。在 Windows 浏览器上,系统会向系统发送电子邮件意图,然后系统会检查注册表,如果有一些软件与该意图挂钩,它将启动并将数据填充到软件中。如果没有,它会抛出奇怪的错误或保持沉默。
在移动设备上也是如此,如果有任何应用程序连接它会启动它,它会经历同样的事情。在大多数情况下,它会自行将其路由到一组默认设置,但手机上始终有一个默认的电子邮件应用程序。
意图示例。如果您正在运行 Instagram 或 facebook 应用程序。去谷歌搜索用户名,然后点击结果查看,弹出窗口被触发在 facebook/Instagram 中打开或继续使用浏览器。这是在后台工作的意图。
除了触发此功能之外,您对整个过程没有太多控制权。
<button style="background-color: blue; color:white;" onclick="location.href='takeme@there.com';">Send Email</button>
<button style="background-color: blue;"><a href="mailto:takeme@there.com" style=" color:white;">Send Email</a></button>
<a href="mailto:takeme@there.com" style="display:inline-block; height:20px;width:80px;background-color: blue; color:white;">Send Email</a>
进一步阅读
【讨论】:
任何网站都无法提前检测网站用户是否在他们的笔记本电脑、计算机或设备上安装了电子邮件客户端。因此即使用户没有电子邮件应用程序,mailto 也会尝试运行。
在 php 或 asp.net 的帮助下创建带有联系电子邮件、电话或手机号码和姓名的联系我们页面是用户与我们联系和交流的更好选择。
如需了解更多有关 mailto 和联系表比较的详细信息,请访问 -
这将帮助您进行移动相关查询...
https://css-tricks.com/all-about-mailto-links/
下面的链接是关于mailto和联系表格的更多信息......
和
https://www.uncinc.nl/nl/articles/dealing-mailto-links-if-no-mail-client-available
【讨论】:
在您的MainActivity.java 中为所需的服务定义Button 和Intent:
package com.example.myapplication;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = findViewById(R.id.idbtn);
}
public void btnClick(View v){
Intent i = new Intent(Intent.ACTION_SEND);
i.setData(Uri.parse("email"));
String[] s={"abc@gmail.com","xyz@gmail.com"};
i.putExtra(Intent.EXTRA_EMAIL,s);
i.putExtra(Intent.EXTRA_SUBJECT, "This is a Subject");
i.putExtra(Intent.EXTRA_TEXT,"Hi, This is the Email Body");
i.setType("message/rfc822");
Intent chooser = Intent.createChooser(i,"Launch Email");
startActivity(chooser);
}
}
之后,您将在activity_main.xml 中设置您的Button:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="horizontal">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/idbtn"
android:onClick="btnClick"
android:text="Launch Email"
android:layout_gravity="center"/>
</LinearLayout>
在您的AndroidManifest.xml 中定义permission.INTERNET
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapplication">
<uses-permission android:name="android.permission.INTERNET"/>
<application
services 将通过单击启动电子邮件Button 变成intent,如下所示:
【讨论】: