Rails:控制器中的触发事件

时间:2017-06-14 08:41:42

标签: ruby-on-rails

在创建记录后,在我的应用程序控制器中,我想自动打开客户端的whatsapp,短信或电子邮件应用程序(取决于新记录的类型)。

我的创建操作如下所示:

def create
    session[:return_to] ||= request.referer

    @token = SecureRandom.uuid
    @new_token = Token.new(:token_value => @token, :sender_id => current_user.id, :card_id => params[:card_id], :type => params[:type])    

    respond_to do |format|
      format.html { redirect_to session.delete(:return_to), notice: "Token " + @new_token.token_value + " was successfully created."  }
    end

    if @new_token.type == "sms"
      #open client's sms app and autofill sms body with @new_token.token_value

    elsif @new_token.type == "email"
      #open client's email app and autofill subject + body with @new_token.token_value

    elsif @new_token.type == "whatsapp"
      #open client's whatsapp and autofill body with @new_token.token_value

    end

  end

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

我猜你应该能够重定向到特定于应用程序的网址方案。作为这个想法的一个例子:

<html>
<meta http-equiv="refresh" content="0; url=mailto:info@example.com?body=token&subject=Your new token" />
</html>

您可以使用预先制作的消息重定向到电子邮件和whatsapp:

redirect_to 'mailto:info@example.com?body=token&subject=Your new token'
redirect_to 'whatsapp://send?text=token'

可悲的是,sms url scheme only supports a telephone number。请注意,mailto: - url方案几乎适用于电子邮件客户端可用的任何地方,对whatsapp: - url方案的支持取决于操作系统以及此人是否安装了WhatsApp。因此,知道你将重定向到什么!