2013-09-25 161 views
2

我曾在Worklight 5中工作過,但我似乎無法讓它在V6中工作。IBM Worklight 6.0 - window.open()在BlackBerry 10中失敗

我試圖用科爾多瓦InAppBrowser在我的工作燈的應用程序在黑莓10.我的代碼很簡單:

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

這適用於Android在iOS,但是當II在黑莓10運行模擬器,我得到以下錯誤在控制檯日誌:

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

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

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

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

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

我是否缺少使這項工作需要的一些配置?

回答

3

似乎是在科爾多瓦從2.0到2.3的變化。在Worklight V5中,通配符白名單訪問起作用,但在BB10上的V6中,只有特定域可以列入白名單。

如果我在config.xml中添加特定域作爲訪問元素,突然window.open()工作。望着blackberry documentation,我想我明白爲什麼

如果指定了多個元素,使用了最具體的 定義。例如,如果使用http://somedomain.comhttp://specific.somedomain.com,則會忽略使用第一個定義(以及在其下定義的所有功能)的元素。

但是,這讓我想知道通配符訪問的工作燈V5如何工作(和它)此相同的規則應適用於V5項目,我沒有看到在科爾多瓦文檔改變什麼,但對於一些導致通配符白名單訪問在那裏工作,但不在Worklight V6中。

在任何情況下,只要我在config.xml中明確指定所有域,就可以使window.open()工作。我還沒有找到一種將所有內容成功列入白名單的方法。我試圖刪除一切,但:

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

(這匹配什麼是在配置。在我的純科爾多瓦測試應用程序的XML)

但隨後失敗的應用程序連接到工作燈服務器(不明白爲什麼)

+0

我在這裏遇到同樣的問題。有關解決方案或解決方法的任何更新? – WiPhone

+1

我唯一的解決方法是明確地將所有需要的域添加到白名單中。 –

0

Worklight 6.0使用Cordova v2.6,它可能是支持BlackBerry 10的window.open(現在真的是InAppBrowser)有點關閉。

看看你是否可以基於科爾多瓦文檔與它玩耍:
http://cordova.apache.org/docs/en/2.6.0/cordova_inappbrowser_inappbrowser.md.html

+1

該文檔非常簡單。在Cordova 2.6中,唯一支持BB10的是window.open()。沒有其他BB特定的筆記。我扔了一個純科爾多瓦2.6 BB10應用程序和window.open()工作正常。 –

0

我意識到這個問題已經回答了,但有一個config.xml的設置,你可以添加,將允許訪問任何域,如記錄here

只需添加:

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

要你的config.xml,你應該是好去。

相關問題