Smartphone-based pedestrian localization is still a challenge in deep urban canyons, where GNSS signals suffer from the degrading of signal transmission, multipath effects, and NLOS reception. This paper presents a comprehensive pedestrian localization scheme based on PDR and GNSS observations at different times, using the internal sensors equipped in the smartphone, including GNSS raw measurements (pseudo-range, carrier phase), internal MEMS sensor (including the gyroscope, accelerometer, magnetometer, and barometer). The core algorithm utilizes historical effective satellite observation and PDR to solve pedestrian position, exploiting both PDR and GNSS's complementary properties. The proposed approach can improve accuracy and continuity and solve the problem of missing data, such as without satellite coverage. Besides, we design a Kalman filter model to reduce systematic errors and correct PDR in real-time to decrease the cumulative error of PDR. To evaluate the proposed pedestrian localization scheme's performance, we perform experiments in a typical urban canyon with dense foliage and tall buildings and compare it with the different state-of-the-art approaches. The comparison and analysis of the overall positioning performance show that the method proposed in this paper can provide a better localization scheme, and the RMS value of positioning error is improved from 51.7m (GNSS only) to 9.6m.