2016-12-18 20 views
0

私は主にCordovaを使用するハイブリッドアプリケーション開発者です。私は、iOSとAndroid用のネイティブGarmin SDKを実装するためにCordova Pluginを作成する必要があると思う面白いシナリオに入ってきましたavailable hereGarmin Mobile SDKのCordovaプラグインの作成

私はcordovaのプラグインのドキュメントを確認し、その例を完成しました。 Link here。私はまた、この問題に関する多くのまともなリソースを見直しました。Instabug'sと1つはModusです。

しかし、他のチュートリアルに含まれているGarmin SDKに含まれていないコンポーネントがある理由を理解するのに十分な知識が不足しています。主にConnectIQ.bundle。

私は、私が経験しているエラーを引き起こす可能性があることについても不明です。私は開発しようとしているカスタムプラグインを介してConnectIQ.frameworkを実装する特定のファイルをプロジェクトが見つけることができないと感じています。

私は他の人の実装でも非公式のcordova Connect IQプラグインthey released last yearを見つけました。実行されると、これは私のエラーログです:

2016-12-18 18:35:04.748 appTest[56419:4257397] CDVPlugin class CIQPlugin (pluginName: connectiq) does not exist. 
2016-12-18 18:35:04.748 appTest[56419:4257397] [CDVTimer][connectiq] 0.180006ms 
2016-12-18 18:35:13.942 appTest[56419:4257397] CDVPlugin class CIQPlugin (pluginName: ConnectIQ) does not exist. 
2016-12-18 18:35:13.942 appTest[56419:4257397] ERROR: Plugin 'ConnectIQ' not found, or is not a CDVPlugin. Check your plugin mapping in config.xml. 
2016-12-18 18:35:13.942 app Test[56419:4257397] -[CDVCommandQueue executePending] [Line 142] FAILED pluginJSON = ["INVALID","ConnectIQ","initializeWithUrlScheme",["prefs-123456"]] 

これは、plugin.xmlファイルの内容が含まれています。これらのエラーと私の研究に基づいて

<?xml version="1.0" encoding="UTF-8"?> 
<!-- Copyright (c) 2014 PayPal. All rights reserved. --> 
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0" 
    xmlns:rim="http://www.blackberry.com/ns/widgets" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    id="com.heavydutydev.cordova.ciq" 
    version="0.0.1"> 
    <name>Cordova CIQ</name> 
    <description>This plugin allows basic interactions with the Garmin Connect IQ native interfaces</description> 
    <keywords>garmin, connect-iq, connect iq</keywords> 
    <license>NONE</license> 
    <engines> 
      <engine name="cordova" version="&gt;=5.0.0" /> 
    </engines> 




    <!-- ios --> 
    <platform name="ios"> 
     <js-module src="www/cdv-plugin-connect-iq.js" name="ConnectIQ"> 
     <clobbers target="ConnectIQ" /> 
     </js-module> 
     <config-file target="config.xml" parent="/*"> 
      <feature name="ConnectIQ"> 
       <param name="ios-package" value="CIQPlugin" onload="true" /> 
      </feature> 
     </config-file> 
     <source-file src="src/ios/ConnectIQ.framework" framework="true" /> 
    <!-- <header-file src="src/ios/PayPalMobileCordovaPlugin.h" /> 
     <source-file src="src/ios/PayPalMobileCordovaPlugin.m" /> 

     <header-file src="src/ios/PayPalMobile/PayPalConfiguration.h" /> 
     <header-file src="src/ios/PayPalMobile/PayPalFuturePaymentViewController.h" /> 
     <header-file src="src/ios/PayPalMobile/PayPalMobile.h" /> 
     <header-file src="src/ios/PayPalMobile/PayPalOAuthScopes.h" /> 
     <header-file src="src/ios/PayPalMobile/PayPalPayment.h" /> 
     <header-file src="src/ios/PayPalMobile/PayPalPaymentViewController.h" /> 
     <header-file src="src/ios/PayPalMobile/PayPalProfileSharingViewController.h" /> 

     <source-file src="src/ios/PayPalMobile/libPayPalMobile.a" framework="true" /> 
     <source-file src="src/ios/PayPalMobile/libCardIO.a" framework="true" /> 
     <source-file src="src/ios/PayPalMobile/libopencv_core.a" framework="true" /> 
     <source-file src="src/ios/PayPalMobile/libopencv_imgproc.a" framework="true" /> 


     <framework src="Accelerate.framework" /> 
     <framework src="AudioToolbox.framework" /> 
     <framework src="AVFoundation.framework" /> 
     <framework src="CFNetwork.framework" /> 
     <framework src="CoreGraphics.framework" /> 
     <framework src="CoreLocation.framework" weak="true" /> 
     <framework src="CoreMedia.framework" weak="true" /> 
     <framework src="CoreVideo.framework"/> 
     <framework src="MessageUI.framework" /> 
     <framework src="OpenGLES.framework" /> 
     <framework src="MobileCoreServices.framework" /> 
     <framework src="Security.framework" /> 
     <framework src="SafariServices.framework"/> 
     <framework src="SystemConfiguration.framework" /> 
     <framework src="QuartzCore.framework"/> 
     <framework src="UIKit.framework"/> 


     <framework src="libc++.dylib" /> 
     <framework src="libPayPalMobile.a" /> 
     <framework src="libCardIO.a" /> 
     <framework src="libopencv_core.a" /> 
     <framework src="libopencv_imgproc.a" /> --> 

    </platform> 

    <platform name="android"> 
     <js-module src="www/cdv-plugin-connect-iq.js" name="ConnectIQ"> 
     <clobbers target="ConnectIQ" /> 
     </js-module> 
     <config-file target="res/xml/config.xml" parent="/*"> 
      <feature name="ConnectIQ"> 
       <param name="android-package" value="com.heavydutydev.cordova.ciq.CIQPlugin" /> 
      </feature> 
     </config-file> 

     <source-file src="src/android/com/heavydutydev/cordova/ciq/CIQPlugin.java" target-dir="src/com/heavydutydev/cordova/ciq" /> 
     <source-file src="src/android/com/heavydutydev/cordova/ciq/CIQContext.java" target-dir="src/com/heavydutydev/cordova/ciq" /> 
     <source-file src="src/android/libs/connectiq.jar" target-dir="libs" /> 
<!-- 
     <config-file target="AndroidManifest.xml" parent="/manifest"> 
      <uses-permission android:name="android.permission.CAMERA" /> 
      <uses-permission android:name="android.permission.VIBRATE" /> 

      <uses-feature android:name="android.hardware.camera" android:required="false" /> 
      <uses-feature android:name="android.hardware.camera.autofocus" android:required="false" /> 

      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
      <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> 
      <uses-permission android:name="android.permission.INTERNET"/> 
     </config-file> --> 

<!--   <config-file target="AndroidManifest.xml" parent="/manifest/application"> 
      <service android:name="com.paypal.android.sdk.payments.PayPalService" 
      android:exported="false" /> 
      <activity android:name="com.paypal.android.sdk.payments.PaymentActivity" /> 
      <activity android:name="com.paypal.android.sdk.payments.LoginActivity" /> 
      <activity android:name="com.paypal.android.sdk.payments.PaymentMethodActivity" /> 
      <activity android:name="com.paypal.android.sdk.payments.PaymentConfirmActivity" /> 
      <activity android:name="com.paypal.android.sdk.payments.PayPalFuturePaymentActivity" /> 
      <activity android:name="com.paypal.android.sdk.payments.FuturePaymentConsentActivity" /> 
      <activity android:name="com.paypal.android.sdk.payments.FuturePaymentInfoActivity" /> 
      <activity android:name="com.paypal.android.sdk.payments.PayPalProfileSharingActivity" /> 
      <activity android:name="com.paypal.android.sdk.payments.ProfileSharingConsentActivity" /> 
      <activity 
       android:name="io.card.payment.CardIOActivity" 
       android:configChanges="keyboardHidden|orientation" /> 
      <activity android:name="io.card.payment.DataEntryActivity" /> 
     </config-file> --> 

    </platform> 

</plugin> 

を、私はplugin.xmlのことを考えると、 config.xmlが実装しようとしているSDKと正しく位置合わせされていません。誰かがいくつかの追加のトラブルシューティング手順を提供して問題の詳細を知ることができれば、それは非常に感謝しています。

答えて

0

私はddteeterプラグインによるインスピレーションを得て自分のプラグインを始めました。
しかし、Androidオペレーティングシステムのみをサポートします。

私はConnectIQСordovaプラグインを使用していくつかのエラーがあることを理解しています。
したがって、以下から最初に行うことをお勧めします。

1)githubからddteeterプラグインをダウンロード/クローンします。
2)コードバプロジェクトを作成します。 Androidプラットフォームを追加します。
3)NPMを使用してplugmanユーティリティをインストールします。
4)作成したばかりのプロジェクトにddteeterプラグインをインストールします。

call plugman install --platform android --project platforms\android --plugin some\filesystem\path\to\ddteeter\plugin\root\directory 

その後、必要に応じてデバイス(またはMonkey Cアプリケーション)に接続することができます。
ダイレクトメッセージングの場合でも、Google PlayのアプリケーションGarmin Connectをインストールする必要があります。Android BLE SDKは動作しません。

また、このプラグインには貴重なロジックが含まれていないことに注意してください。しかし、ペアリングされたデバイスを列挙してすべての動作を確認することができます。 このプラグインはJavaScriptコードからアクセス可能な 'ConnectIQ'グローバル変数を公開します。

+0

マキシム、私はddteeterのプラグインに基づいて作業しました。私はアンドロイドとIOSでこの機能をサポートする方法を模索しています。提供されたドキュメントがもはや有効でないため、私はConnectIQ.frameworkを不適切に実装していたようです。 – user2355051

関連する問題