2012-03-30 7 views
2

target="_blank"属性のモバイルアプリ(Sencha Touch 2で作成)にリンクがあります。このアプリはネイティブiOSアプリとしてパッケージ化されています。問題は、リンクがSafariで期待通りに開かれていないことです。代わりに、アプリ内で開きます。新しいブラウザウィンドウでSafariでリンクを開くことは非常に重要です。それをどうすれば実現できますか?ウェブアプリからの外部リンクをネイティブiOSアプリとしてパッケージ化

私はSencha(senchaパッケージ)のネイティブパッケージャを使用していると付け加えます。デフォルトの動作は、同じWebviewで新しいウィンドウを開くようです。しかし、私はそれらをモバイルSafariで開く必要があります。私は次のことを行うことができXcodeプロジェクトで

煎茶タッチネイティブパッケージでそれを行う方法
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { 
    if (navigationType == UIWebViewNavigationTypeLinkClicked) { 
     [[UIApplication sharedApplication] openURL:request.URL]; 
     return NO; 
    } 
    return YES; 
} 

+0

[[のUIApplication sharedApplication]のOpenURL:[NSURL URLWithString: "あなたのリンク" @]]; – Hiren

+0

私の記事を読んでください、私はSencha Touchフレームワークのネイティブパッケージャを使用することについて話しています。 –

+0

ネイティブパッケージャを使用していない場合は、これを行う方法は間違いありません。 –

答えて

3

私はSenchaネイティブパッケージでこれを行う方法を発見していません。

しかし、phonegap.plistのExternalHost配列に必要なURLを追加して、アプリケーションをphonegapにラップし、Xcodeでアプリケーションをコンパイルすると正しく動作するはずですか?

また、私はAppDelegate.mをハッキングしてSafariでリンクを開くと、正常に動作すると見なします(まだPhonegapソリューション上)。

+0

あなたが最高の答えを出したので、私はあなたにその恩恵を与えます。とにかくSencha Touchでこれを行う方法がないと思うし、とにかくphonegapを使うという別の問題に終わった。 –

8

これを使用して、Mobile Safariまたは新しいウィンドウでリンクを開くことができます。ネイティブiOSパッケージとウェブアプリケーションで動作します。

function externalLink(link) { 
try{ 
    Ext.device.Device.openURL(link); 
}catch(err) { 
    window.open(link, '_blank'); 
} 
} 
+0

この機能のおかげでBen。 –

+0

これは役に立ちますが、その関数をどのように呼び出すのですか?私は 'Ext.Panel'へのリンクをHTMLに追加し、Safariでリンクを開くことを望みます。 –

1

モバイルSafariでプログラムで(Javascript)リンクを開きます。 理想のあなたは、標準のHTMLリンクを使用することはできませんが、あなたはJavascriptを使用する必要がある場合:

var a = document.createElement("a"); 
a.setAttribute('href', facebook); 
a.setAttribute('target', '_blank'); 
a.click(); 
関連する問題