【问题标题】:Calling Swift function from Javascript in UrbanAirship message center details page在 UrbanAirship 消息中心详细信息页面中从 Javascript 调用 Swift 函数
【发布时间】:2016-09-10 04:27:20
【问题描述】:

当从服务器端推送推送通知时,默认的Urban Airship消息中心显示在应用程序上

UAirship.defaultMessageCenter().display() 

点击消息会显示消息详细信息。消息详情页面的内容是一个 HTML 负载,它是服务器端触发的推送通知的一部分。当点击 WebView 上的按钮时,我需要调用 swift 函数。由于我们无法访问 UA 提供的视图控制器中呈现的 WKWebView,因此我无法从 javascript 调用任何 swift 函数。请提出建议。

【问题讨论】:

  • 你找到解决办法了吗?

标签: urbanairship.com


【解决方案1】:

考虑使用 Urban Airship 的 actions framework,它可用于从消息中心 web 视图触发本机代码。

首先,定义您的自定义UAAction

let swiftAction = UAAction(block: { (args: UAActionArguments, handler: UAActionCompletionHandler) -> Void in
    print("Action is performing with: \(args)")

    handler(UAActionResult.empty())
})

然后在takeOff之后注册动作。

UAirship.shared().actionRegistry.registerAction(swiftAction, name:"swift_action")

然后您可以修改您的 HTML 内容以运行您的消息中的操作。在消息中心 webview 中插入的 UAirship 对象上使用 runAction 方法。

UAirship.runAction("swift_action", "arguments", function() {return true})

其他资源:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多