`
modabobo
  • 浏览: 515649 次
文章分类
社区版块
存档分类
最新评论

PhoneGap Andriod插件制作--判断是否存在某软件并跳转到软件.

 
阅读更多

1.准备好phonegap的开发环境 .不清楚的话可以看这个资料

我这用的是phonegap2.5的版本

2.在Eclipse里,在你的项目src目录下 建立一个CheckActive.java

代码如下

package 这里是你的包名;

import org.apache.cordova.api.CallbackContext;
import org.apache.cordova.api.CordovaPlugin;
 

import org.json.JSONArray;
import org.json.JSONException;

import android.content.pm.PackageInfo;
import android.content.pm.PackageManager.NameNotFoundException;

public class CheckActive extends CordovaPlugin {
	
	
	@Override
	public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
		 
		if (action.equals("CheckActive")) {
		 
  			//args为 js传递过来的参数集合 这里为我传递过来的要检查的软件的包名例如 com.aa.xx
			String appname=(String) args.get(0);		 
			PackageInfo packageInfo; 
	        
			 
	        try {
	            packageInfo =cordova.getActivity().getPackageManager().getPackageInfo(appname, 0);
	        } catch (NameNotFoundException e) {
	            packageInfo = null;
	            e.printStackTrace();
	        }
	        
	        if(packageInfo ==null){
	           
  	            	//回掉参数给js
 		callbackContext.success("false");	             
	        }else{
	            
	            	callbackContext.success("true");
	            
	        }
			
			
            
            return true;
            
        }
        return false;
    }

}

3. 在res/xml/config.xml里进行配置,在<plugins></plugins>里加入 <plugin name="CheckActive" value="你的包名.CheckActive" />

以上java部分配置完毕.


=================================================================================
因为webapp的主要代码是在assets\www目录下.接下来的操作均在www目录下操作

js部分

建立一个js文件 命名为checkative.js 文件位置为assets\www\js\inc
代码如下:

//会员页 是否安装了会员的软件的判断函数,以及安装了就跳转到软件
var CheckActive = function() {};
   
CheckActive.show = function(appname,imgid,appurl) {</p><p>  return cordova.exec(function(winParam) {
         
          
        if(winParam=="true"){
  
         //已经安装图标变成"进入app".同时图标的点击事件变成 进入到此app。 goactive为另一个插件。appname参数为包名
          $("#"+imgid).attr("src","images/member_app.png");
          $("#"+imgid).click( function () { GoActive.show(appname); }); 
        }
        else{
         
         //没有安装图标变成"下载".同时图标的点击事件变成 进入到此app的下载页面 appurl为下载的手机页面。
          $("#"+imgid).attr("src","images/member_install_app.png");
          $("#"+imgid).click( function () { navigator.app.loadUrl(appurl,{ openExternal:true });   }); 
          
        }
         $("#"+imgid).show();
         
          
          }, function(error) {}, "CheckActive",
             "CheckActive", [appname]);
};</p><p> </p><p>//打开某个app</p><p>var GoActive = function() {};
   
GoActive.show = function(appname) {</p><p>  
 return cordova.exec(function(winParam) {}, function(error) {}, "GoActive",
             "GoActive", [appname]);
};


Goactive.java为进入打开某个app的插件,参数为app的包名,配置如checkative.java.代码如下

package 你的包名; import org.apache.cordova.api.CallbackContext; import org.apache.cordova.api.CordovaPlugin; import org.json.JSONArray; import org.json.JSONException; import android.content.Intent; public class GoActive extends CordovaPlugin { @Override public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException { if (action.equals("GoActive")) { String appname=(String) args.get(0); Intent intent = cordova.getActivity().getPackageManager().getLaunchIntentForPackage(appname); //这里注意,获取上下文用cordova

			cordova.getActivity().startActivity(intent); 

			 
            return true;
            
        }
        return false;
    }

}



最后在html页面里.先包含checkative.js.在页面尾部加入js如下

<script>

//判断corvoda.js是否加载完毕.
document.addEventListener("deviceready", checknetworkIndex, false);

funciton checknetworkIndex(){

//包名,图片名称,下载地址 后两项可自己更改,只需要包名

CheckActive.show("com.aa.cc","btimg","http://app.aa.com/");

}

</script>

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics