2013-07-31 25 views
13

Làm cách nào để bạn mở các liên kết trong trình duyệt gốc của thiết bị khi sử dụng Cordova 3.0 trên iOS?Cordova 3.0 - Mở liên kết trong trình duyệt bên ngoài trong iOS

Mọi người đã đề xuất sử dụng window.open(url, "_system") nhưng điều này không hoạt động trong Cordova 3.0.

Nỗ lực của tôi

if(navigator.app) // Android 
    navigator.app.loadUrl(url, {openExternal:true}) 
else // iOS and others 
    window.open(url, "_system") // opens in the app, not in safari 

Có ai biết một giải pháp mà làm việc với Cordova 3,0?
Cảm ơn

+0

Kiểm tra 2.015 câu trả lời của tôi ở đây để mở '_self' trong WebView, và '_blank' ở bên ngoài trình duyệt: http://stackoverflow.com/questions/32208609/cordova-why-would-inappbrowser-plugin-be-required-to-open-links-in-system-brows/32227524 –

Trả lời

19

LƯU Ý: để làm cho window.open('somelink', '_system') để làm việc bây giờ bạn cần một plugin cấp thiết bị, các inAppBrowser. Dưới đây là hướng dẫn cài đặt như của Cordova 3,0

Từ Documents cho 3,0:

Tính đến phiên bản 3.0, Cordova thực hiện các API cấp thiết bị như plugins. Sử dụng lệnh Plugin của CLI, được mô tả trong Các dòng lệnh giao diện, thêm hoặc loại bỏ tính năng này cho một dự án:

$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser.git 
$ cordova plugin rm org.apache.cordova.core.inappbrowser 

Những lệnh này áp dụng đối với tất cả các nền tảng mục tiêu, nhưng thay đổi các thiết lập cấu hình nền tảng cụ thể mô tả dưới đây:

iOS (trong config.xml)

<feature name="InAppBrowser"> 
    <param name="ios-package" value="CDVInAppBrowser" /> 
</feature> 

tôi chỉ thử nghiệm này và nó hoạt động.

+8

Đáng chú ý rằng nó xuất hiện plugin InAppBrowser cũng cho phép xử lý các liên kết '_system' ([http://cordova.apache.org/docs/en/3.1.0/cordova_inappbrow ser_inappbrowser.md.html # window.open] (http://cordova.apache.org/docs/en/3.1.0/cordova_inappbrowser_inappbrowser.md.html#window.open)) –

+0

Đó là chính xác. Tôi quên đề cập đến. – dannytenaglias

+0

@dannytenaglias tiếp tục và đặt câu trả lời đó vào câu trả lời của bạn. Một cái gì đó như: Chú ý: để làm cho 'window.open ('somelink', '_system')' để làm việc bạn bây giờ cần một plugin cấp thiết bị, inAppBrowser. Dưới đây là các hướng dẫn cài đặt như của Cordova 3.0: –

4

cài đặt InAppBrowser plugin:

$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser.git 
$ cordova plugin rm org.apache.cordova.core.inappbrowser 

và thực hiện các plugin trong .js tập tin của bạn:

//exec(successCallback, errorCallback, pluginName, pluginMethod, params) 
cordova.exec(null, null, "InAppBrowser", "open", [url, "_system"]); 
Các vấn đề liên quan