React Native WebView 无法打开链接电话:在某些小米手机上

问题描述 投票:0回答:2

我有一个用 React Native 开发的 Android 应用程序,它是一个 WebView。

该网站有一个带有

tel:123456789
uri 的电话按钮,在大多数测试的设备中运行良好。

仅在某些小米手机上无法从应用程序中打开拨号器。如果我在智能手机浏览器中打开该网站,该按钮可以正常工作并打开拨号器,但从 webview 应用程序中它不起作用。

App.js:

  const App = () => {
  const [canGoBack, setCanGoBack] = React.useState(false);
  const ref = React.useRef(null);
  ...
  return (
    <SafeAreaView style={styles.container}>
      <View style={{width: '100%', height: '100%'}}>
        <WebView
          ref={ref}
          source={{uri: 'https://example.com/'}}
          geolocationEnabled={true}
          onNavigationStateChange={navState => {
            setCanGoBack(navState.canGoBack);
          }}
         
        />
      </View>
    </SafeAreaView>
);
};

AndroidManifest.xml:

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.mypackage">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.CALL_PHONE" />

    <application
      android:name=".MainApplication"
      android:label="@string/app_name"
      android:icon="@mipmap/ic_launcher"
      android:roundIcon="@mipmap/ic_launcher"
      android:allowBackup="false"
      android:theme="@style/AppTheme">

        <activity
          android:name=".SplashActivity"
          android:theme="@style/SplashTheme"
          android:label="@string/app_name">
          <intent-filter>
              <action android:name="android.intent.action.MAIN" />
              <category android:name="android.intent.category.LAUNCHER" />
          </intent-filter>
        </activity>

      <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
        android:launchMode="singleTask"
        android:windowSoftInputMode="adjustResize"
        android:exported="true">
             </activity>
    </application>
</manifest>
android react-native webview xiaomi tel
2个回答
0
投票

你有解决办法吗?我也有同样的疑问


-1
投票

尝试添加运行时权限并将其添加到“android/app/src/main/AndroidManifest.xml”中

 <activity
            android:name=".MainActivity"
            ......
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER"          />
            </intent-filter>
          
        
    <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="tel" />
         </intent-filter>
        </activity>
© www.soinside.com 2019 - 2024. All rights reserved.