2016-08-03 37 views
19

Tôi đang cố gắng sử dụng plugin Googleova cordova trong dự án ionic 2 mới (phiên bản ionic2 mới nhất) nhưng tôi luôn gặp phải lỗi liên quan đến cordova. Plugin được cài đặt đúng cách và hiển thị trong thư mục plugin.ionic 2 lỗi cordova không khả dụng

Một cách tiếp cận tôi đã cố gắng là thế này:

import { GooglePlus } from "ionic-native"; 

và sau đó

GooglePlus.login().then(...) 

Phương pháp đăng nhập thực hiện nhưng luôn luôn ném một lỗi nói "cordova_not_available"

Tôi muốn thử nghiệm các ứng dụng với ionic serve trên hệ thống cửa sổ của tôi trước khi triển khai nó vào điện thoại Android của tôi. Làm thế nào tôi có thể làm cho cordova có sẵn trong máy chủ lưu trữ cục bộ? Từ tìm kiếm, tôi hiểu rằng cordova.js được tạo ra và luôn được bao gồm trong gói triển khai cho thiết bị.

Một cách tiếp cận tôi đã cố gắng sử dụng

window.plugins.googleplus.login(...) 

Nhưng phương pháp này không đi qua các trình biên dịch nguyên cảo người không biết gì về một tài sản bổ sung vào cửa sổ đối tượng.

Làm cách nào để khắc phục sự cố này?

Trả lời

5

Sử dụng ionic serve vô hiệu hóa tất cả các plugin cordova, vì nó không chạy trên thiết bị.

Thay sử dụng ionic run android này sẽ bắt đầu một giả lập android rằng nên cho phép tất cả các plugin cordova hoạt

Tôi cũng đã đi qua cách tiếp cận thứ hai, nhưng cú pháp sau đó đã được windows['plugins'].googleplus.login(...)

+0

Dường như điều này có thể đã thay đổi ngay bây giờ thành: ionic cordova chạy android – Ash

14

Lỗi này thường xảy ra khi bạn đang chạy ứng dụng bằng chrome sử dụng ionic serve, điều này là bình thường vì trong thành phần gốc của trình duyệt cordova không có ở đó mà cũng xuất hiện trên trình mô phỏng và thiết bị khi plugin gốc ion mà bạn đang sử dụng được thêm vào, ngay cả khi bạn đã thêm plugin ionic cho nó.

Ví dụ nếu bạn đang using native Toast

sau đó bạn cần phải thêm phụ thuộc ion thích hợp:

ionic plugin add cordova-plugin-x-toast --save 

nhưng bạn cũng cần phải thêm cordova phụ thuộc:

cordova plugin add cordova-plugin-x-toast --save 

Nếu bạn quên thêm plugin cordova sau này, bạn sẽ gặp lỗi như:

Runtime Error Uncaught(in promise): cordova_not_available 

Điều gì có thể phức tạp để tìm ra nguyên nhân.

Khi bạn đã thêm phụ thuộc ion và cordova, bạn sẽ có thể sử dụng nó.

Hãy chắc chắn rằng bạn nhập nó:

import { Toast } from 'ionic-native'; 

bơm Phiến đá ở sân nhà xây dựng:

constructor(public navCtrl: NavController, private platform: Platform) {... 

sau đó sử dụng các mục có nguồn gốc:

this.platform.ready().then(() => 
     Toast.show("Successfull", '5000', 'center') 
     .subscribe(
     toast => { 
      console.log(toast); 
     } 
    )); 
+0

Tôi nhận thấy rằng lỗi: Lỗi Runtime Uncaught (trong lời hứa): cordova_not_available vẫn hiển thị một số lần trong khi chạy trình giả lập android trên linux .. chưa chắc chắn nguyên nhân vì nó không nhất quán, đôi khi nó xảy ra với những người khác nó hoạt động. –

+0

Vẫn nhận được lỗi tương tự ngay cả sau khi tất cả cài đặt này, và tôi nhận thấy rằng CLI đã quan sát thấy plugin đã được cài đặt trên plugin cordova đang chạy thêm cordova-plugin-x-bánh mì nướng --save – kolexinfos

+0

@ kolexinfos - nó chỉ hoạt động khi chạy với ionic chạy android mà không có tùy chọn -lc, khi sử dụng ionic phục vụ hoặc ionic chạy android -lc có lỗi vẫn còn đó như các plugin cordova không có sẵn trong trình duyệt. Những gì tôi làm với android là khởi kiện ionic chạy android và sau đó để có thể xem nhật ký/giao diện điều khiển, tôi đăng nhập logcat với: adb logcat | grep -i "console" vì vậy tôi vẫn có thể theo dõi nhật ký. –

25

Nếu bạn muốn plugin hoạt động cho trình duyệt bạn nên thêm platform browser và chạy nó:

ionic cordova platform add browser 

và chạy nó:

ionic cordova run browser 

thay vì ionic serve.

Các vấn đề liên quan