【问题标题】:iphone:Is that possible to create email button in HTML for eBook App?iphone:可以在 HTML 中为 eBook App 创建电子邮件按钮吗?
【发布时间】:2011-12-28 11:56:45
【问题描述】:

我正在开发电子书应用程序。我想将电子邮件按钮放在每个章节中。书籍是 HTML 格式,我正在将该 html 页面加载到 webView 中。 现在有什么方法可以在 HTML 中创建电子邮件按钮并将该按钮的操作转换为 Objective-c 吗? 或者有什么方法可以发送书籍章节的内容?

【问题讨论】:

  • 您可以在导航栏或其他地方添加电子邮件按钮,就像电子书应用程序的色调一样。

标签: iphone objective-c xcode webview


【解决方案1】:

你可以使用javascript。

function drawButton(code){
    var body = document.getElementsByTagName("body")[0];
    var frame=document.createElement("div");
    var link=document.createElement("a");
    var image=document.createElement("img");

    image.src="btn-email.png";
    link.appendChild(image);
    link.href=sendmail(code);
    frame.appendChild(link);
    body.appendChild(frame);

}

这将在您的 html 文档中绘制电子邮件按钮,您可以使用 stringByEvaluatingJavascriptFromString UIWebView 方法从 Obj C 调用它。在这个例子中,我传递了变量“code”,它是核心数据库中一个元素的主键。 href 是通过函数 sendmail( ... ) 创建的,看起来像这样(在我的代码中)并再次使用“代码”来创建唯一链接。

function sendmail(code){
    var scheme="mail:"+code;
    return scheme;
}

这将创建一个自定义方案,当用户点击它时,该方案将被发送到应用程序中的 UIWebView。使用委托方法 webViewShouldLoadRequest: 您可以捕获该方案并使用其中的信息。

code 可以是您数据库中的一本书的唯一 ID 或 s.th。当用户按下邮件按钮时,mail:code_of_book 会被发送,您可以使用该代码打开邮件应用程序并附上正确的书。其实很简单,也很方便。

查看我的博客了解更多相关信息,我在一周前写了 2 篇关于在 Web 视图中使用 javascript 以及如何与 Obj C 通信的教程。

http://howtomakeitinamsterdam.wordpress.com/

【讨论】:

    【解决方案2】:

    在 UIWebView 上设置委托并实现 webview:shouldStartLoadingWithRequest:navigationOptions 方法。在此方法中,您可以查询请求 URL 架构以实现 mailto: 方案的不同行为 - 然后在 HTML 源代码中使用 mailto: 链接。例如,您可能想要执行 [[UIApplication sharedApplication] openURL:...] 来打开内部 mail.app(尚未对此进行测试,但 90% 确定它会起作用)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 2017-04-30
      • 1970-01-01
      • 1970-01-01
      • 2013-11-23
      • 2011-09-28
      相关资源
      最近更新 更多