根据 TWA 文档的当前理解,我们可以使用 URL 意图和查询参数/自定义标头在本机 Android 和 Web 之间传递消息。
我想将信息从网络传递到本机,并根据同一页面上本机到网络中对该消息的操作返回响应。我可以通过重新打开另一个受信任的网络活动来做到这一点。但这会导致页面加载并破坏页面的现有状态。
换句话说,我正在尝试在 TWA 中复制请求-响应类型的行为,而无需在 Web 上进行页面转换。
示例用例:从 PWA 中,我想调用 android 本机代码来打印字符串。如果发生失败,我想将错误响应发送回 PWA。
有没有一种方法可以在不重新加载页面的情况下完成此操作?
受信任的 Web 活动在 Android 和 Web 应用程序之间没有运行时通信桥梁,因此问题的简短答案是,如果不重新加载页面,就无法完成此操作。
这里有一个很长的讨论线程:https://github.com/GoogleChrome/android-browser-helper/issues/55。请插话并描述您的用例。
从 Chrome 115 开始,TWA 可以利用
postMessage
在运行时在 Web 和本机应用程序之间进行通信。
请参阅此处的官方文档:https://developer.chrome.com/docs/android/post-message-twa