4

最近、何人かの開発者が、UIWebViews を介して国有コンテンツ (無料のパブリック プロパティ) を指すだけのアプリを作成し始めています。アプリがすべて広告でサポートされており、一部のアプリは有料であることを除いて、これは通常は問題になりません. 基本的に、彼らは国営コンテンツでお金を稼いでいます。

私の質問は次のとおりです: UIWebview (アプリのブランドにラップされている) に表示するのではなく、新しい Safari ウィンドウを開くようにサイトを強制するにはどうすればよいですか? 以下を使用して UIWebview を検出できますが、単にコンテンツを非表示にする以外に何もできません。Safari で開くコンテンツへのリンクを提供することを希望します。

これは私がUIWebviewを検出する方法です:

var is_uiwebview = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(navigator.userAgent);
4

3 に答える 3

2

残念ながら、開発者が User-Agent 文字列を好きなように強制するのはかなり些細なことなので、これらの開発者を阻止しようとする試みは一時的なものに過ぎない可能性があります。コンテンツを強制的にブラウザで表示することはできません。ユーザーは CURL などのツールを使用してコンテンツを表示することもできます...

于 2012-08-29T14:34:36.133 に答える
1

このスレッドで見られるように、それが WebView であるか Mobile Safari であるかを確認できます。問題は、カスタム URL スキームを介してしか Safari を開くことができず、http://、https:// などしか機能しないことです。safari-http:// のようなものがあったとしても、UIWebView を使用するアプリのプログラマーはその要求をキャッチして、Web ビューにリダイレクトすることができます。申し訳ありませんが、それは不可能です。

于 2012-08-29T15:51:36.553 に答える
1

UIWebview にいることを検出したら、window.open() を起動してコンテンツを新しいウィンドウに配置する必要があります。

これは、少しトリッキーにするいくつかの癖について話しています (しかし、不可能ではありません): UIWebview でポップアップ リンクを開く。質問はあなたの逆ですが、受け入れられた回答は、UIWebviewにJavascriptを介して新しいウィンドウをポップさせる方法を示していることに注意してください。

これは、Web が始まって以来ずっと懸念事項でした。人々があなたのコンテンツをスクレイピングするのを止めることはできませんが、再構成を難しくすることはできます.

編集して追加

残念ながら、アプリはwindow.open(): UIWebView が Javascript 呼び出しに応答するのを傍受できます。

いつでもあきらめて、次のようなバナーを表示することができると思います。

于 2012-08-29T14:37:58.333 に答える