2016-08-25 16 views
0

我已經構建了一個簡單的Android應用程序,作爲一個出版物網站的伴侶片,與Ionic框架,和(經過很多頭撞),我設法讓應用程序上的Disqus線程與網站上的線程同步。嘗試了幾種不同的方法之後,我最終用this directive from Michael Bromley去實現應用程序中的Disqus小部件,它隱藏在應用程序用戶界面上每篇文章底部的「評論」按鈕後面。Ionic:Disqus嵌入加載本地,但不是在生產(或在仿真器)

與離子發球臺一起運行,一切都非常出色。本地服務器之外:不是那麼多。我沒有收到Disqus的錯誤消息 - 它根本不加載iframe。我不想發佈代碼,因爲我想知道這是否僅僅是一個CORS問題,或者可能是我忽視的一些簡單問題。

有一件事情可能很重要:我沒有在應用程序上安裝Crosswalk插件 - 我不確定我的想法是否正確,但是可以與Chrome兼容,這就是爲什麼當我在瀏覽器上測試時運行正常,但與Android的默認瀏覽器不兼容的原因?我在Crosswalk上沒有很好的閱讀,但我相信它告訴應用程序使用特定的瀏覽器 - 如果是這樣,可以安裝它來解決問題?我會繼續並安裝它,看看它是否有幫助,但是如果問題與插件完全無關,我想避免使用其他工作的應用程序篡改太多內容。

一個奇怪的警告:Disqus評論加載文章就好,當我在Genymotion上測試應用程序。我刪除了那篇文章,並在我的網站上創建了一篇新的測試文章(因此啓動了一個新的Disqus線程),並且未能在Genymotion上呈現。看起來非常......隨意,我想,它會起作用一次。似乎它會一直工作,或者從不工作。

編輯:在Genymotion上運行時,在使用WebView調試應用程序時,控制檯中不會顯示任何錯誤。事實上,我沒有收到「拒絕加載」錯誤,這讓我認爲Disqus正在接聽電話,並且無論出於何種原因都拒絕接聽電話。

回答

0

我可以花幾個小時試圖找出一些東西,然後......好吧,只要我發佈一個問題,我最終會在五分鐘後找出答案。

我挖看着爲我所用的指令(我強烈建議任何人希望能夠輕鬆實現Disqus到任何AngularJS項目)的代碼,我注意到,在呼喚embed.js與以下字符串:

.... 

if (!$window.DISQUS) { 
         var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true; 
         dsq.src = '//' + scope.config.disqus_shortname + '.disqus.com/embed.js'; 
         (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq); 
        } else { 

.... 

修改dsq.src = '//' + scope.config.disqus_shortname + '.disqus.com/embed.js';添加一個協議,使其在dsq.src = 'http://' + scope.config.disqus_shortname + '.disqus.com/embed.js';修復Genymotion的問題。我會將更新後的APK發佈到Play商店,並對該答案發表評論以確認它是否在該處保留。

+0

Welp,事實證明,我將無法選擇我自己的答案,在這裏。 Genymotion會變得很好,但不會在生產中加載。所以......老鼠。 – sparkholiday

相關問題