React Native用expo编译iOS App,实现WebView调用支付宝App支付
安卓
安卓很简单,用以下代码即可:
<WebView
source={{ uri: '包含支付宝的网页,例如有赞手机网页商城' }}
originWhitelist={["*"]} // default only http and https
sharedCookiesEnabled={true}
onShouldStartLoadWithRequest={navState => {
if (0===navState.url.indexOf('alipays://') || 0===navState.url.indexOf('alipay://')) {
Linking.openURL(navState.url)
return false
}
return true // if not alipay scheme, just open
}}
/>
其中安卓scheme是alipays://,iOS是alipay://
iOS/iPadOS
iOS的话,无法直接在Expo Go上测试支付宝支付,需要更改配置编译.ipa安装包
https://docs.expo.dev/guides/linking/#opening-links-to-other-apps
在./app.json里
"expo": {
... ...
"ios": {
"supportsTablet": true,
"infoPlist": {
"LSApplicationQueriesSchemes": ["alipay", "alipays"]
},
"bundleIdentifier": "com.yourdomain.yourproject"
},
... ...
}
编译.ipa安装包并在iOS/iPadOS设备上安装运行的方式:https://medium.com/nerd-for-tech/abbde4086d08
备份文章:https://nftstorage.link/ipfs/bafybeidpjbd7ye5vfxa6vhsrjssfsk5qw6ib2kmnkkbe6lqd3qdrcakpym
上文用的是windows系统,如果你是Mac系统,USB连接iPhone后,可以在Finder左边栏里找到iPhone设备的界面,将.ipa安装包拖到这个界面即可安装到手机