11

Phonegap を使用して作成した iOS アプリを Phonegap 3.1 を使用して iOS7 に移植している最中ですが、ちょっとした問題が発生しました。

target="_blank" attributeiOS 7 では、 とのハイパーリンクがデフォルトでシステム ブラウザではなくアプリ自体で開かれるという点で、いくつかの重要な変更が加えられたようです (ただし、これは Android や以前のバージョンの iOS では発生しないようです)。これにより、アプリの機能の一部が壊れており、これを修正する必要があります。

InAppBrowser プラグインを使用する方法のように思われるので、プラグインをインストールしました。これを含めるようにconfig.xmlを修正しました:

<feature name="InAppBrowser">
        <param name="ios-package" value="CDVInAppBrowser" />
</feature>

テンプレート内のリンクは次のようになります (ここではテンプレート システムとしてハンドルバーを使用していることに注意してください)。

<a href="#" onclick="window.externalbrowser = window.open('{{this.url}}, ', '_system', 'location=yes');" data-transition="slide">
    <img alt="Favicon" style="border: 1px solid #ccc;" title="Favicon" class="ui-li-icon" src="{{this.favicon_url}}"></img>
    <p style="font-size: 100%"><strong>Submitted {{this.whenSubmitted}}</strong><br />Last changed {{this.lastChanged}}</p>
</a>

リンクをクリックしても開くことができず、ログに次のエラーが表示されます。

Plugin 'InAppBrowser' not found, or is not a CDVPlugin. Check your plugin mapping in config.xml.
2013-11-08 10:22:56.753 MyApp[197:60b] -[CDVCommandQueue executePending] [Line 117] FAILED pluginJSON = [
  "InAppBrowser814285423",
  "InAppBrowser",
  "open",
  [
    "http:\/\/www.site.co.uk\/deals-offers-savings\/b?ie=UTF8&node=350613011&tag=page0e-21,",
    "_system",
    "location=yes"
  ]
]

CDVInAppBrowser.mソース ファイルに関する非推奨の警告もいくつかあります。

プラグインが取り上げられていない理由は、一生わかりません。他の誰かが問題が何であるかを提案できますか?

4

4 に答える 4

26

プロジェクトを再作成することなく、これに対する真の解決策を見つけました。この回答に基づいて:同様の質問と回答

これは、プラグインの追加/削除後に xcode プロジェクト ファイルが更新されないことがあるために発生するようです。すべてのファイルが配置され、config.xml は適切に配置されていますが、xcode プロジェクトは新しいプラグイン ファイルをアプリケーションをターゲットとしてマークすることができません。

ここに画像の説明を入力

解決:

  1. プロジェクトを xcode で開く
  2. 問題のプラグイン ファイル (CDV*.m ファイル) に移動します。
  3. 右側のメニューの [ターゲット メンバーシップ] セクションで、アプリケーションのチェックボックスがオンになっていることを確認します。

ここに画像の説明を入力

于 2014-08-07T15:29:33.260 に答える
3

更新 - 新しいプロジェクトの再作成に頼る前に、以下の barryrowe の回答を試してください。これは、うまく機能しているように見える、シンプルで従うのが簡単なソリューションです。ありがとうバリー!

プラグインを削除して再インストールした後、同様のエラーに何度か遭遇しました。私にとってこれまでに機能した唯一の解決策は、まったく新しいアプリプロジェクトで新たに開始し、「www」フォルダーからファイルをコピーして、Xcode で必要な変更をやり直すことです。

https://issues.apache.org/jira/browse/CB-4971を見ると、これは Cordova チームが追跡しようとしているバグのようです。そのリンクには代替案がいくつかありますが、再実行が必要なカスタム Xcode の変更がアプリに多数含まれていない限り、最初からやり直す方がおそらく簡単です。

私はHandlebarsに精通していませんが、あなたのコードには余分なコンマとスペースが{{this.url}}. しかし、あなたの主な問題はコードではなく、プラグイン自体に関連していると思います。

ちなみに、コマンド ラインを使用して InAppBrowser プラグインを正しくインストールした場合は、必要なプラグイン コードが関連するアプリケーションの config.xml ファイルに自動的に追加されるため、手動で config.xml ファイルを変更する必要はありません。次にプロジェクトをビルドするときのプラットフォーム。

于 2013-11-20T16:06:40.000 に答える
1

その簡単な修正:

フォルダ内/plugins/には org.apache.cordova.inappbrowser ディレクトリも必要です。/platforms/ios/myApp/Plugins/次のようになります。

-----/org.apache.cordova.inappbrowser
---------/CDVInAppBrowser.h
---------/CDVInAppBrowser.m
于 2014-08-18T01:03:36.570 に答える