フレックス アプリのディープリンクには、swfaddress 2.4 を使用します。以前は機能していましたが、フレックス アプリを移行して Amazon S3 バケットでホストするときに問題が発生しました。
私はこれをしました:
- アプリがアセット/データをロードするためにアクセスする各ドメインに設定されたポリシー ファイル
allowScriptAccess
に設定されていますalways
- ポリシー ファイルは
loadPolicyFile
、アプリの開始時に (経由で)ロードされます。 allowDomain
(およびallowInsecureDomain
) も設定されています
問題:
- SWFAddress.setValue() を呼び出すと、ブラウザのアドレス バーのアドレスは変更されません。デバッグ時に
_value
、swfaddress.js の は渡された値を正しく保持しています - これによりブラウザの履歴が壊れます(ブラウザの戻るボタンとアプリを使用できません)
アドレスバーにクエリを手動で入力すると、次のエラーがスローされます。
Uncaught Error: Error in Actionscript. Use a try/catch block to find error.
と
Uncaught Error: Error calling method on NPObject
_swfChange
これは、次の行の関数からのものです。SWFAddress.as のコールバックはobj[setter](value);
どこにありますか。そのため、コールバックを追加する関数を実行する SWFAddress.as も作成しました。setter
setSWFAddressValue
_initialize
- 問題のある行に try..catch を置くと、悪名高い無限ループの swfaddress 問題に陥ります。推奨されるような修正を追加すると、アプリはビューステートを変更しなくなりました
前もって感謝します。
//ところで、これはこの未解決の問題に似ています: Amazon S3 と swfaddress