2012-02-14 15 views
3

私はFlash Airを使ってiOSゲームを開発しています。あなたのアプリケーション内からブラウザを立ち上げることができればうれしいでしょう。どんなアイデアもありがとう! AIRアプリからnavigateToURL()docs)を呼び出すFlash Air iOS開発:アプリケーション内からブラウザを起動することは可能ですか?

+0

注:ここでは

は、画面の右半分(別名段階)のページを開くために使用例の 'StageWebView'は、定義された長方形_within_あなたのアプリでWebページを開きます一方、 'navigateToURL'はあなたのアプリのSafariブラウザを起動します。質問は多少あいまいだと思われますが、両方の回答が以下によく示されています。 :) –

答えて

2

は、URLにシステムブラウザアプリを起動します(バックグラウンドでアプリを残して)指定:

import flash.net.navigateToURL; 
import flash.net.URLRequest; 

navigateToURL(new URLRequest("http://google.com"), "_blank"); 
+0

しかし、このコードは私のアプリケーションを終了し、ブラウザを開くだろう。私は自分のアプリ内でユーザーを保持したい... – user867556

+0

"_blank"の代わりに "_self"または他のものを試すことができます。それが助けにならないなら、エイドリアンの答えはより有望なようです。 – ToddBFisher

3

あなたのAIRアプリケーション内のWebページを開くためにStageWebViewを使用することができます。以下の回答について

private var _web_view:StageWebView; 
private function init_stagewebview(url:String):void 
{ 
    if (_web_view) { 
    throw new Error('init_stagewebview() called with existing _web_view - you must call cleanup first'); 
    } 
    _web_view = new StageWebView(); 
    var stage:Stage = NativeApplication.nativeApplication.activeWindow.stage; 
    _web_view.stage = stage; 
    _web_view.viewPort = new Rectangle(stage.stageWidth/2,0,stage.stageWidth/2, stage.stageHeight); 
    _web_view.addEventListener(ErrorEvent.ERROR, handle_error); 
    _web_view.addEventListener(IOErrorEvent.IO_ERROR, handle_error); 
    _web_view.addEventListener(SecurityErrorEvent.SECURITY_ERROR, handle_error); 
    _web_view.addEventListener(LocationChangeEvent.LOCATION_CHANGING, handle_loc_change); 
    _web_view.loadURL(url); 
} 

private function handle_loc_change(e:LocationChangeEvent=null):void 
{ 
    if (e) { 
    var loc:String = e.location; 
    trace(" -- webView location changed to: "+loc); 

    // Disable the navigation if you want to (this is a common 
    // way of passing data from web to AIR): 
    // e.preventDefault(); 
    } 
} 

private function cleanup_web_view():void 
{ 
    if (_web_view == null) return; 
    _web_view.removeEventListener(ErrorEvent.ERROR, handle_error); 
    _web_view.removeEventListener(IOErrorEvent.IO_ERROR, handle_error); 
    _web_view.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, handle_error); 
    _web_view.removeEventListener(LocationChangeEvent.LOCATION_CHANGING, handle_loc_change); 
    _web_view.viewPort = null; 
    _web_view.dispose(); 
    _web_view = null; 
} 

private function handle_error(e:ErrorEvent):void 
{ 
    if (e) trace("- - - - webView Error:" + e.toString()); 
} 
関連する問題