2017-07-22 6 views
2

ネイティブインターフェイスについては、以下のガイドを読んでいます。コードネーム1のIOSのネイティブインタフェース関数を呼び出す方法は?

https://www.codenameone.com/how-do-i---access-native-device-functionality-invoke-native-interfaces.html 

https://www.codenameone.com/manual/advanced-topics.html#_native_interfaces

私はHello Worldのテストを行うと、コードネーム1つのファイルにネイティブインターフェイスにIOSのための呼び出しを見つけることができません。 私は.hと.mと "ネイティブアクセスを生成"しました。この後、私は続行するためにチェックアウトすることはできません。 私の意図は、IOSからネイティブの "クリップボードからのコピー"と "クリップボードからのペースト"を呼び出すことです。

IOSのコードネーム1でネイティブインターフェイス関数hello worldを呼び出すにはどうすればよいですか?

インポートする対象は何ですか?

どこにIOSとネイティブインターフェイスの完全なサンプルがありますか?

これは私が今チュートリアルから得たファイルです。

package com.mycompany.crtome; 

import com.codename1.system.NativeInterface; 

public interface native_calls extends NativeInterface { 
    String helloWorld(String hi); 
} 

OK、時間ファイルの内容:

#import <Foundation/Foundation.h> 

@interface com_mycompany_crtome_native_callsImpl : NSObject { 
} 

-(NSString*)helloWorld:(NSString*)param; 
-(BOOL)isSupported; 
@end 

その後メートルファイル:それから私はnative_calls.javaと呼ばれる追加のjavaファイルを

#import "com_mycompany_crtome_native_callsImpl.h" 

@implementation com_mycompany_crtome_native_callsImpl 

-(NSString*)helloWorld:(NSString*)param{ 
    NSLog(@"MyApp: %@", param); 
    return @"Tada"; 
} 

-(BOOL)isSupported{ 
    return YES; 
} 

@end 

を持っていますだから、私はどのように私のメインJavaファイルから呼び出すのか分からないのですか?

そして、関数と呼び出しをステップごとに説明できますか?

+1

を使用します。ネイティブアクセスを生成すると、hとmファイルが作成されます。あなたがどこにいるのかは不明です。あなたのネイティブインターフェイスの内容は何ですか?ネイティブ側の問題は何ですか、通常はmファイルを編集するだけです。 –

+0

追加情報を追加しました。ありがとうございました。 ネイティブインターフェイスを呼び出す間に、私が理解できるとき、何が起きているのがうれしいでしょう。 – orgen

答えて

1

ネイティブインターフェイスをiOSコードにバインドするコードは自動的に生成されます。ネイティブインターフェイスを使用するには、

native_call n = NativeLookup.lookup(native_call.class); 
if(n != null && n.isSupported()) { 
    String result = n.helloWorld("Hi There"); 
} 
+0

メインファイルにインポートするものがありますか、それとも生成することによって自動的にバインドされていますか? – orgen

+0

これは機能しません。ルックアップはこの場合実装されていません。 'native_calls n = NativeLookup.lookup(native_calls.class); if(n!= null && n.isSupported()){ 文字列の結果= n.helloWorld( "こんにちは"); } ' コンパイラは、私が' Native_calls N = NativeLookup.create(native_calls.class)でそれをしようとした場合 – orgen

+0

"シンボルメソッド検索を見つけることができない" と言う; ' コンパイラは言う: エラー:あるべきクラスnative_callsは、公開されていますnative_calls.javaという名前のファイルで宣言されています public class native_callsはcom.mycompany.crtome.cative_calls { の実装方法を知りません。 – orgen

関連する問題