onNavigationStateChange не работает в устройстве iphone, но работает в эмуляторе - PullRequest
0 голосов
/ 12 января 2019

я заставляю реагировать нативное приложение в ios для своего магазина. В моем приложении после того, как я заплачу деньги, я хочу вернуться к своему приложению. Я использую веб-просмотр для этого приложения, а для контроля веб-просмотра для возврата к своему приложению я использую событие URL onnavigatestatechange , мой код работает в эмуляторе сайта экспо, но он не работает в устройстве iphone, и я не могу вернуться после нажатия кнопки в веб-представлении. пожалуйста, помогите мне.

import React, { Component } from "react";
import styles from "./../../assets/css/Login";
import {
  View,
  Text,
  Image,
  TextInput,
  TouchableOpacity,
  Alert,
  ActivityIndicator,
  AsyncStorage,
  WebView,
  Linking
} from "react-native";
import { Navigator } from "./../Navigator";
import { Header } from "react-native-elements";
import { Mobile } from "./Mobile";

export default class ShowOnline extends Component {
  constructor() {
    super();
    this.state = {
      isLoading: false
    };
    this.webView = null;
  }

  removeAllOrder() {
    var formData = new FormData();
    formData.append("type", "rmall");
    formData.append("number", Mobile["Call"].name);
    return fetch("http://roomarket.ir/LlIi1/user-order.php", {
      method: "POST",
      headers: {
        Accept: "application/json",
        "Content-Type": "application/json"
      },
      body: formData
    })
      .then(response => response.json())
      .then(responseJson => {})
      .catch(() => {
        Alert.alert("error");
      });
  }

  _onNavigationStateChange(webViewState) {
    if (webViewState.url.trim() == "return://roomarketfactorsuccess") {
      this.props.navigation.goBack();
      Alert.alert("پرداخت با موفقیت انجام شد");
      this.removeAllOrder();
      this.props.navigation.navigate("MainPage");
    } else if (webViewState.url.trim() == "return://roomarketfactorsuccess") {
      this.props.navigation.goBack();
      Alert.alert("پرداخت با موفقیت انجام نشد");
    }
  }
  render() {
    return (
      <View style={{ flex: 1 }}>
        <Header
          leftComponent={{
            icon: "arrow-back",
            color: "#fff",
            onPress: () => this.props.navigation.goBack()
          }}
          centerComponent={{ text: "پرداخت ", color: "white" }}
          backgroundColor="#95DE5F"
        />
        <WebView
          ref={webView => (this.webView = webView)}
          source={{
            uri:
              "http://factor.roomarket.ir/?number=09398691732&id=100"
          }}
          onNavigationStateChange={this._onNavigationStateChange.bind(this)}
          startInLoadingState={true}
        />
      </View>
    );
  }
}
...