[公告] 痞客邦新服務上線 每日星座運勢測算[公告] 痞客邦應用市集全新改版![公告] 痞客邦「應用市集」新 App 上架-iFontCloud Professional[公告] 痞客邦後台發表文章提供插入多張圖片新功能[公告]痞客邦新服務上線 部落客商店聚集就在《痞市集》

現在還是忙於APP generator的事,

所以能發文的時間還是少得可憐啊~

不過這也是題外話了,

今天主要想為最近專案碰到的一些小問題和解法做個簡單筆記。

 

最近一個專案裡,需要把APP中觀看的文章連結分享到社群網路上。

整個專案是以PhoneGap為底層架構,加上討論過後決定不碰FB的API,用簡單點的做法來解決,

所以我們利用PhoneGap的ChildBrowser plugin去開啓FB的分享頁面 (http://www.facebook.com/sharer/sharer.php),

再把要分享的連結網址帶入u這個參數中 (ex: http://www.facebook.com/sharer/sharer.php?u=tw.yahoo.com)。

但問題在於原本我們想利用頁面submit之後轉換網址時,

透過ChildBrowser的chageLocation事件來偵測分享是否完成,並將ChildBrowser視窗自動關閉。

可是此分享頁面在按下「分享」按鈕submit時,利用應是Ajax的非同步方式,

所以網址並不會發生改變,自然也就不會觸發chageLocation事件。

 

研究了一會,發現如果加上一個next參數的話,

會在分享完成後,自動導到FB domain下的某個指定位址,

例如:http://www.facebook.com/sharer/sharer.php?u=tw.yahoo.com&next=/home.php

這段網址會在分享完成後,自動把網址導到FB首頁,也就是http://www.facebook.com/home.php

如此一來,便可以在分享結束後偵測到changeLocation事件。

 

But,事情還是沒這麼簡單結束.......

因為在手機上開啓FB網頁時,會自動被導到行動版的網址,

所以原本的分享網頁網址會由http://www.facebook.com/sharer/sharer.php,變成http://m.facebook.com/sharer.php

欲分享的連結網址依然是帶入到u這個參數,但next這個參數卻失效了。

研究許久,但還是無法在行動版的分享網頁上找到類似的解決方法 (或許有,只是我沒找到吧),

最後只好採用折衷方式,

我會在一般版的網址加上一個m2w參數 (ex: http://www.facebook.com/sharer/sharer.php?m2w&u=tw.yahoo.com),

此參數會強制使用一般版網頁,避免被轉到行動版網頁,

這樣就可以套用原來的solution來解決了。

 

以上是最近在專案中利用FB分享網頁做連結分享的一些小小心得筆記,

如果有人還有更好的方法,也歡迎提供。

, , , , ,

Posted by aio1108 at 痞客邦 PIXNET 留言(1) 引用(0) 人氣()


留言列表 (1)

Post Comment
  • 頭痛人
  • 拜讀閣下的博客,實在佩服。本人亦從事網頁設計,對於日新月異的網頁技術,實在有點鞭長莫及。想問關於node.js 同phonegap兩者能否同時應用呢?
  • 您好:
    照大略的分類來說,PhoneGap屬於行動裝置前端的開發技術,而node.js較屬於server side的技術,兩者有些些分屬不同世界的意味。

    但如果就設計系統架構的層面來說,前端的APP採用PhoneGap來開發,後端使用node.js來建立資料服務平台,同時應用兩者來建構系統;若再配合NoSQL類型資料庫作為資料來源,能達到輕量、資料結構彈性、具擴展性等優點。其實在開發APP時,個人覺得也是一個不錯的選項。

    一點點愚見,希望有所對你幫助。 :)

    aio1108 replied in 2012/07/28 01:10

You haven’t logged in yet, please use guest status to leave message. You can also log in with above service account and leave message

other options