[英]React-native dev options not showing up on mobile app installed on Xiaomi Phone
[英]Check if Metamask app is installed on the phone using react-native
我正在使用react-native
構建一個應用程序。 我正在使用 React Native 的Linking
API 在手機上安裝的 metamask 應用程序中打開我的網站鏈接。 如果設備上安裝了 metamask 應用程序,則Linking.opneURl(url)
可以正常工作。 問題在於,如果設備上未安裝 Metamask,它會在瀏覽器中打開鏈接。
我想要做的是應用檢查,如果設備上未安裝 Metamsk 應用程序,將要求用戶安裝該應用程序,否則它應該在 metamask 應用程序中正常打開。 到目前為止,我已經使用了linking
API 和react-native-check-app
但我沒有得到我想要的結果。
您需要通過 metamask 移動應用程序瀏覽器從移動應用程序打開您的鏈接。 我們目前知道的方式是,您可以將 url 鏈接到 metamask, Linking
是 React Native 的內置功能。 單擊按鈕后,選擇 metamask 將在 metamask 瀏覽器中打開metamask-auth.ilamanov.repl.co
作為http://metamask-auth.ilamanov.repl.co
。 單擊連接錢包后,您可以選擇 metamask 移動應用程序,在自行瀏覽您的 dApp 鏈接后,它可以使用 metamask 進行身份驗證。
import React, { useCallback } from "react";
import { Alert, Button, Linking, StyleSheet, View } from "react-native";
const yourDappLink = "metamask-auth.ilamanov.repl.co" // change or create yourself
const supportedURL = "https://metamask.app.link/dapp/"+yourDappLink;
const OpenURLButton = ({ url, children }) => {
const handlePress = useCallback(async () => {
// Checking if the link is supported for links with custom URL scheme.
const supported = await Linking.canOpenURL(url);
if (supported) {
// Opening the link with some app, if the URL scheme is "http" the web link should be opened
// by some browser in the mobile
await Linking.openURL(url);
} else {
Alert.alert(`Don't know how to open this URL: ${url}`);
}
}, [url]);
return <Button title={children} onPress={handlePress} />;
};
const App = () => {
return (
<View style={styles.container}>
<OpenURLButton url={supportedURL}>Connect Wallet</OpenURLButton>
</View>
);
};
const styles = StyleSheet.create({
container: { flex: 1, justifyContent: "center", alignItems: "center" },
});
export default App;
請參考官方文檔中的這一部分。 從文檔中提取:
確定已安裝的應用程序是否可以處理給定的 URL。 該方法返回 Promise object。 當判斷給定的URL是否可以處理時,promise就解決了,第一個參數是是否可以打開。
然后你可以 go 像這樣實際使用:
const isInstalled = await Linking.canOpenURL("yourUrl");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.