2013-03-22 16 views
0

저는 phonegap 및 android에서 새롭습니다.Phonegap 플러그인 cant는 android의 고유 기능을 호출합니다

javascrip을 사용하여 nativegame 함수를 호출하기 위해 phonegap 및 android에 플러그인을 만들었습니다.

내 coode는 다음과 같습니다.

플러그인/BannerLink.js

var BannerLink = { 

    callNativeFunction: function (success, fail, resultType) { 
     //alert(resultType); 
     return Cordova.exec(success, fail, 
        "org.apache.cordova.example.BannerLink", 
        "nativeFunction", 
        [resultType]); 

        alert(resultType); 
    } 
}; 

내 HTML보기 파일

function bannerPressed(link){ 
    alert(link.rel); 
    //window.location.href=link.rel; 
    //window.open(link.rel); 
    BannerLink.callNativeFunction(nativePluginResultHandler,nativePluginErrorHandler,link.rel); 
} 
function nativePluginResultHandler (result) { 
    alert("SUCCESS: \r\n"+result); 
} 

function nativePluginErrorHandler (error) { 
    alert("ERROR: \r\n"+error); 
} 

내 BannerLink.java 파일

package org.apache.cordova.example; 

import org.apache.cordova.api.Plugin; 
import org.apache.cordova.api.PluginResult; 
import org.json.JSONArray; 

import android.app.AlertDialog; 
import android.util.Log; 

@SuppressWarnings("deprecation") 
public class BannerLink extends Plugin { 

    @Override 
    public PluginResult execute(String action, JSONArray args, String callbackId) { 
     // TODO Auto-generated method stub 

     AlertDialog alertDialog=new AlertDialog.Builder(null).create(); 
     alertDialog.setTitle("Reset..."); 
     alertDialog.show(); 
     Log.d("HelloPlugin", "Hello, this is a native function called from PhoneGap/Cordova!"); 
     //only perform the action if it is the one that should be invoked 
     return new PluginResult(PluginResult.Status.ERROR); 
    } 

} 

내 config.xml 파일

<plugin name="BannerLink" value="org.apache.cordova.example.BannerLink"/> 

나는 phonegap 2.0을 사용하고 있습니다.

실수 한 부분을 수정하십시오.

답변

1

몇 가지 오류가 있습니다. "코르도바는"소문자가없는 대문자이고 당신은 플러그인 이름이 아닌 간부 인 방법의 전체 경로를 제공해야합니다

var BannerLink = { 
    callNativeFunction: function (success, fail, resultType) { 
     return cordova.exec(success, fail, 
        "BannerLink", 
        "nativeFunction", 
        [resultType]); 
    } 
}; 

당신이 자바 코드에 표시하려고하는에 AlertDialog가에 싸여 할 필요를 실행 가능한 예 :

Runnable runnable = new Runnable() { 
     public void run() { 

      AlertDialog alertDialog=new AlertDialog.Builder(null).create(); 
      alertDialog.setTitle("Reset..."); 
      alertDialog.show(); 
     }; 
    }; 
    this.cordova.getActivity().runOnUiThread(runnable);