0

フォンギャップを使用しています。現在アンドロイドでは、私が行った非常に単純な関数を使用してページを変更できます:

public boolean execute(String action, CordovaArgs args, CallbackContext callbackContext) throws JSONException {
        MainActivity ma = (MainActivity) cordova.getActivity();
        ma.reload(args.getString(0));
        return (true);
    }

そしてmainActivityで:

super.loadUrl("file:///android_asset/www/" + url, 1000);

しかし、私は客観的な C と iO に不慣れで、正しいキーワードや答えの始まりを見つけることができません。関数と同等のものを使用できexecuteますが、mainActivity を取得してページをリロードする方法がわかりません

今まで私は自分のプラグインで、次のコードを持っていますが、機能していません:/

- (void)execute:(CDVInvokedUrlCommand*)command
{
//id message = [command.arguments objectAtIndex:0];
 id message = @"buy/buy.html";       
 [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:message]]];
}

編集:

私は次のことをしようとしました:

@implementation Redirect

- (void)execute:(CDVInvokedUrlCommand*)command
{
    id message = [command.arguments objectAtIndex:0];

    NSString* newUrl = message;
    NSString* javaScript = nil;
    NSString *jsCallBack = [[NSString alloc] initWithFormat:@"changeUrl('%@');", newUrl];



    CDVPluginResult* pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:message];
    javaScript = [pluginResult toSuccessCallbackString:jsCallBack];
    [self writeJavascript:javaScript];
}
@end

そしてhtmlで:

 window.changeUrl = function (url){
        alert("ici");
        navigator.app.loadUrl(url);
    }

var Redirect= function(){
    return cordova.exec( function(data){ alert(data);console.log("Success");}, function(){ console.log("Fail");},
                            "Redirect",
                            "execute",
                            [location.href]);
};

プラグインはいつ呼び出されると確信していますが、changeUrl関数にアラートを入れると何も表示されません

4

2 に答える 2