2011-08-24 7 views
1

현재 flex 응용 프로그램을 빌드 중이며 http://site.com/#/account/settings과 같은 멋진 URL을 생성하도록 딥 링크를 허용하려고합니다.flex 응용 프로그램에서 딥 링크

swfaddress 2.4 및 swfobject 2.2에서 swf를 포함시키고 역방향 링크를 제공합니다. 지금까지 모든 것은 Firefox와 Chrome에서 작동합니다. 그러나 Internet Explorer 9에서는 뒤로 버튼과 historyi 기능이 작동하지 않아 오히려 실망 스럽습니다.

흥미롭게도 Flex 샘플 파일 http://www.asual.com/swfaddress/samples/flex/은 IE9에서 완벽하게 작동합니다. 추가 검사시, 그들은 swf를 임베드하기 위해 ac_OETags.js 파일을 사용하고있는 것으로 보입니다. 플렉스에 의해 생성 된 index.html 파일뿐만 아니라 문서를 통해 swf 파일을 임베드하는 기본 방법으로 최신 버전의 swfobject를 사용하고있는 것 같습니다.

swfobject가 1 년 넘게 업데이트되지 않았다고 말한 결과. 나는 또한 저자가 그것을 업데이트 할 의도가 있는지 확신 할 수 없다. 다른 한편으로, 나는 어도비의 역사가 싫어 .js는 역전 (deeplink)을 위해 일한다. http://site.com/#view=1과 같은 URL은 제 생각에 매우보기 흉하게 보입니다.

위에서 보았을 때 swf 파일을 포함시키고 flex 4.5 프로젝트에서 역방향 링크를 사용하기 위해 어떤 라이브러리를 권장합니까?

+0

정직하게 말해서 나는 깊은 연결을해야했는데, 나는 그것을 수동으로했다. 일종의 탐색 위임 패턴을 만들었고 BrowserManager를 사용하여 단편을 업데이트함으로써 루트보기에서 단편을 평가 한 다음 하위 단편을 하위보기로 위임했습니다. (단편에 관심이있는 각 자손보기에 대한 무한 광고). 여기에서의 문제는 대개 내 경험에 비추어 볼 때 딥 링크는 제품 디자이너가 고려해야 할 사항이며 초기 클라이언트 아키텍처를 구축 할 때 만들어지지 않았습니다. –

+0

레코드의 경우 SWFObject가 2.3으로 업데이트되는 중입니다. 바라건대 앞으로 몇 달 안에 출시 될 것으로 기대됩니다. – pipwerks

답변

1

2 명이 가장 좋습니다. 두 가지를 모두 사용하는 것이 좋습니다. 그 말로는, 나는 IE9에서 작동하지 않는 이유를 알기 위해 javascript/flex를 디버그하려고 시도 할 것이고, 다른 개발자들이 그것으로부터 이익을 얻을 수 있도록 오픈 소스 프로젝트 둘 모두에서 코드를 고칠 것입니다.

+0

이유는 확실하지 않지만 전체 프로젝트를 삭제했습니다. (어쨌든 완료되지 않았습니다.) 처음부터 시작되었습니다. Swfaddress 2.4와 swfobject 2.2는 이제 훌륭하게 작동하는 것처럼 보였습니다. – F21

0

IE9가 나왔을 때 Adobe가 history.js를 업데이트하지 않았기 때문입니다. 거기에 코드가 잘못 트리거되는 일부 IE7 버그를 처리 할 수 ​​있습니다.

하면 history.js 다음 코드를 삽입 해결하려면 :

라인 (22) 삽입 후 :

ie9: false, 

(무엇 라인 71) 라인 72 후 :

else if (browser.version == 9) 
{ 
    browser.ie = false; 
    browser.ie9 = true; 
} 

그해야 그것을 고쳐라.

+0

두 번째 수정 프로그램을 어디에서 수행해야하는지 알려주실 수 있습니까? 내 라인 71에서 나는 ...... else if (useragent.indexOf ("safari")! = -1) { browser.safari = true; browser.version = parseFloat (useragent.substring (useragent.indexOf ('safari') + 7)); } – user817057