0

この状況: PhoneGap のように、ios 機能にアクセスする必要がある、存在しない JavaScript 関数を定義して呼び出したい。例えば、

JavaScript コード:

function onClickButton(){
    toModule(true, true, "title1", 1);
}

関数 toModule を介して iOS 機能にアクセスしたいと考えています。しかし、どのように?教えて頂けますか?

PS: JS->iOS の 1 つの解決策は、UIWebViewDelegate を使用することです。

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType

しかし、私はその解決策を望んでいません.JS関数を処理するだけです toModule(...)

4

2 に答える 2

0

これは非常に簡単です ステップ 1) プロジェクトに cordova.js ファイルをインクルードします ステップ 2) コードバスクリプト ファイルに cordova.js をインクルードし、JavaScript ファイルに次のコードを追加します

    cordova.exec(
                              function successCallback() {

                              }, 
function errorHandler(err) {
                              },
'Login', 'callLogin', [param]);
                              }

ここで Login はネイティブ クラスの名前、callLogin は Login クラスの関数、param はネイティブ ファイルに送信するパラメータの配列です。

Step3) config.xml に移動し、これ

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

Step4)

- (void)Login:(CDVInvokedUrlCommand*)command
    { // this is the native function, which is being called from javascript file, do your work here
     }

Step5) ネイティブから js ファイルにデータを送り返したい場合は、以下のコードを記述する必要があります。

NSString * jsCallBack = [NSString stringWithFormat:@"callJsFunction(パラメータ)]; [self.webView stringByEvaluatingJavaScriptFromString:jsCallBack];

callJsFunction() は、ネイティブから呼び出したい js 関数の名前です (文字列のみを送信できます)。

Step6) ネイティブから js に値を取得するには、js ファイルに callJsFunction(parameters) を記述する必要があります。jsファイルに以下の関数を書く

callJsFunction(パラメータ) { }

これは、ネイティブ クラスから js および js からネイティブ関数を呼び出すための完全なプロセスです。

于 2014-11-07T07:21:18.737 に答える
0

javascript(phonegap) から iOS ネイティブ コードに直接アクセスすることはできません。代わりに、この接続を確立できる phonegap プラグインを使用または開発する必要があります。

プラグイン開発ガイドで詳細を見つけることができます

于 2012-09-08T07:46:27.373 に答える