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>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值