0

嗨,我有一个网络应用程序,我将其包装到 WKWebView 中,以便通过 Google Play 和 App Store 分发。

为了让这项工作以我想要的方式工作,我需要能够在 Angular 和 Swift 之间传递一些文本字符串。

这是来自 Angular -> Swift 的信息传递,这是我现在要解决的最重要的一步,我花了几天时间在谷歌上搜索可能的解决方案,但关于 Angular 的文章并不多。

我发现一些在代码语法方面似乎有些过时的文章,但大多数文章都涉及将信息从 JavaScript 传递到 Swift,而不是 TypeScript/Angular4 到 Swift。

我对此的最佳用例是,当用户在 WKWebView 的登录表单中输入他的电子邮件地址时,我需要在 Swift 中检索该电子邮件以获取正在登录的用户,并且将该电子邮件地址映射到设备登录的 Firebase 注册令牌(以提供推送消息)。

有人对此有解决方案吗?例如,我将如何在 Web 应用程序中检索以下表单中输入的文本;

<input class="form-control ng-dirty ng-valid ng-touched" formcontrolname="email" id="email" type="email">

编辑:我不认为这个问题是重复的,因为“window.webkit.messageHandler”函数在尝试在 Angular/TypeScript 中实现它时会在编译时提供错误。一旦我的开发人员可以将其邮寄给我,我将提供示例代码和编译错误输出。

4

1 回答 1

0

我最终通过注入一个脚本来设置和读取 WKWebView 本地存储中的数据来解决这个问题。

这允许我获取 Web 应用程序设置的令牌和字符串,并且我也可以通过本地存储将信息传递给 Web 应用程序。

以下行将使用 tokenFirebase 变量的内容设置一个名为“device”的键,它还将读取由 Angular Web 应用程序设置的本地存储的“token”和“userId”内容:

let addCookieScript="localStorage.setItem('device', '\(self.tokenFirebase)');\nconsole.log(localStorage.getItem('token'));\nconsole.log(localStorage.getItem('userId'));\n"
于 2017-09-01T11:03:05.963 回答