说明:
内置应用程序,需要实现瑞典银行ID 。这意味着,当用户按下按钮时,瑞典银行ID 应用会打开,并且在用户登录后, 瑞典BankID 应用将用户返回到我的应用(它将自动执行),我需要在其中检索数据(无论登录是否成功)。
需要完成的事情:
在我的应用程序中在设备上打开瑞典银行ID 。需要能够从我的应用程序中的瑞典BankID 应用接收有效载荷(瑞典BankID自动将用户发送回我的应用)。
当前代码:
const url = `https://app.bankid.com/?${autoStartToken}`;
const supported = await Linking.canOpenURL(url);
if (supported) {
const answer = await Linking.openURL(url);
} else {
Alert.alert(`Don't know how to open this URL: ${url}`);
}
当前,瑞典BankID 应用已正确打开,我的问题是,是否可以从其他应用接收数据?我知道这可以通过本机模块(运行Objective-C等)来实现,但是我正在使用Expo Client,并且不希望弹出。
我还没有发现任何暗示React-Native可以收听其他应用程序的东西。
答案 0 :(得分:0)
您可以使用expo WebBrowser打开URL。 对于身份验证,您将要使用WebBrowser.openAuthSessionAsync,如果您只想打开网页WebBrowser.openBrowserAsync, 例子:
...
import * as WebBrowser from 'expo-web-browser';
....
const handleLinkAsync = async () => {
let result = await WebBrowser.openBrowserAsync('https://google.com');
console.log(result)
};
答案 1 :(得分:0)
由于BankID应用程序甚至可以在另一台设备上(如果您将URL作为QR码显示),因此很难与该应用程序进行通信。另外,从隐私的角度来看,该应用程序不应泄露很多信息。
您可以做的是使用“ redirect”参数通过应用程序“反弹”信息。当您想绑定到现有会话时,这特别有用。但是,有一些警告,尤其是在使用多个浏览器时,请确保阅读Relying Party Gudelines。