2015年9月11日 星期五

Launching AIR app from browser or another app (without ANE)

There are 2 ways(測試成功的部分僅限Android): 

1. 行動裝置瀏覽器透過超連結開啟指定AIR app

第一個連結內有相當完整的解說,重點步驟:

1. HTML: 這段貼上去就OK惹~
<a href="mytest.openfrombrowser://arg1&arg2">click here to launch your air app from browser</a>
2. AIR Application XML 需要設置,值得一提的是不用特別加上air.mytest.xxx
<data android:scheme="mytest.openfrombrowser"/>  (←這只是其中一行)

3. AS 可透過NativeApplication 偵聽INVOKE事件,接收瀏覽器傳過來的參數,e.argument[0]會完整接收這段字串(mytest.openfrombrowser://arg1&arg2),所以還要再拆解。

4. id必須要小寫否則iOS無作用 (反正也沒得測試)





2. A 開啟 B (都是AIR app)
使用navigetToURL(new URLRequest("xxx"));   的作法沒錯,
但是最後描述的部分有問題, 不能直接使用"todoair://me=neo&you=jack",
會出現SecurityError 2147。




★連結底下的回覆有真正的解法!!!

不知怎麼傳送參數,目前只有第一種方式透過瀏覽器才能送參數。
透過瀏覽器與AIR navigateToURL 兩者作法不同,
(1) 此法在B app 不須額外設置XML。
(2) 在String內的ID必須要加上air才有作用


var url:String = ("intent:#Intent;" +
"action=android.intent.action.MAIN;" +
"category=android.intent.category.LAUNCHER;" +
"component=air.mytest.openfrombrowser/.AppEntry;" + "end");

navigateToURL(new URLRequest(url));


就這樣,搞定收工! (傳遞參數的作法得再研究, 要怎麼貼程式碼格式?)





沒有留言:

張貼留言