1

iPhone用のチタンモジュールを開発するのはこれが初めてです。IPhone 用の Google アナリティクス モジュールの構築に取り組んでいます。

XCode を使用して Google アナリティクスを実装する場合は、didFinishLaunchingWithOptionsデリゲートを使用できます。以下に例を示します。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:  (NSDictionary *)launchOptions
  {
         // Override point for customization after application launch.
         id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"UA-XXXXXXXX-X"];
          return YES;
  }

私が試したところ、完璧に機能しました。

Titanium Module に関しては、didFinishLaunchingWithOptions のようなデリゲートはないと思います。

以下のようにスタートアップ関数に入れました:

-(void)startup
{
    // this method is called when the module is first loaded
    // you *must* call the superclass
    [super startup];
        id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"UA-38803610-1"];
    NSLog(@"[INFO] %@ loaded",self);
 }

しかし、以下のようにアプリケーションを実行すると:

var mod = require("com.mymodule")
Ti.API.log("The module: " +  mod)

次のエラーが表示されます。

: Dispatcher initialization failed: Error Domain=com.google.analytics.error Code=1 "Dispatcher must be initialized on main thread." UserInfo=0xb3d1270 {NSLocalizedDescription=Dispatcher must be initialized on main thread.}

どんな助けでも感謝します。前もって感謝します。

4

1 に答える 1

2

メインスレッドで UI タスクを実行する必要があります。次を使用してそれを行うことができます。

ENSURE_UI_THREAD(functionName,args);

ENSURE_UI_THREAD_0_ARGS

より類似した方法については、このiOS モジュール開発ガイドを確認してください。

于 2013-03-07T05:48:41.263 に答える