簡體   English   中英

IBM Worklight 6.0-在BlackBerry 10中window.open()失敗

[英]IBM Worklight 6.0 - window.open() fails in BlackBerry 10

我曾在Worklight 5中使用此功能,但似乎無法在V6中使用它。

我試圖在BlackBerry 10上的Worklight應用程序中使用Cordova InAppBrowser。我的代碼很簡單:

window.open(link, "_blank", "location=no");

這可以在Android和iOS上運行,但是當II在Blackberry 10模擬器上運行時,控制台日志中出現以下錯誤:

POST http://localhost:8472/org.apache.cordova/isWhitelisted 404 (OK) 

我的應用程序的config.xml包括:

<access subdomains="true" uri="*" />

因此應將所有鏈接列入白名單,但404似乎是用於API調用以檢查鏈接是否被列入白名單,而不是用於打開鏈接的調用。

如果我不願意使用cordova.js從open()的實現中刪除白名單檢查,則InAppBrowser突然可以正常工作,但是每次構建應用程序時該文件都會被覆蓋,因此自定義它不是一種選擇。

我是否缺少進行這項工作所需的一些配置?

科爾多瓦似乎從2.0更改為2.3。 在Worklight V5中,通配符白名單訪問有效,但在BB10的V6中,僅特定域可以被列入白名單。

如果我將特定域添加為config.xml中的訪問元素,則window.open()會突然起作用。 黑莓文檔 ,我想我為什么

如果指定多個元素,則使用最具體的定義。 例如,如果您使用http://somedomain.comhttp://specific.somedomain.com ,則使用第一個定義(及其下定義的任何功能)的元素將被忽略。

但這讓我想知道通配符訪問在Worklight V5中是如何工作的(並且確實如此)。該規則應適用於V5項目,並且我在Cordova文檔中看不到任何更改,但是由於某些原因,通配符白名單訪問有效在那里,但在Worklight V6中卻沒有。

無論如何,只要我在config.xml中專門指定所有域,就可以使window.open()正常工作。 我還沒有找到一種成功將所有內容列入白名單的方法。 我嘗試刪除所有內容,但:

<access subdomains="true" uri="*" />

(這與我的純Cordova測試應用程序中config.xml中的內容匹配)

但是隨后該應用程序無法連接到Worklight服務器(不太清楚為什么)

Worklight 6.0使用Cordova v2.6,這可能是因為在window.open(現在實際上是InAppBrowser)方面,BlackBerry 10的支持已關閉。

根據Cordova文檔查看是否可以使用它:
http://cordova.apache.org/docs/en/2.6.0/cordova_inappbrowser_inappbrowser.md.html

我意識到這個問題已經得到解答,但是您可以添加一個config.xml設置,該設置將允許訪問任何域,如此處所述

只需添加:

<preference name="WebSecurity" value="disable"/>

轉到config.xml,您應該會很好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM