Cordova插件调用Android原生Activity
cordova 插件想要访问Android原生的Activity
操作如下
步骤1.在生成插件的文件夹中找到自动生成的 plugin.xml文件 配置此文件
步骤2.插件文件夹 src/android/ 文件夹下准备拷贝资源
步骤3.提交插件到cordova 项目
步骤4.提交成功后 在Cordova项目中platforms/android/ 找到对应的代码
1.生成的相应android 清单文件
2.对应的java类
3.插件类中操作
@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
if ("alipay".equals(action)) {
Intent intent=new Intent();
intent.setAction("XXXXXXXXXXXXXXXXXXX");
cordova.getActivity().startActivity(intent);
return true;//返回true
}else if("weixinpay".equals(action)){
Intent intent=new Intent();
intent.setAction("XXXXXXXXXXXXXXXXXXXXXXXXX");
cordova.getActivity().startActivity(intent);
return true;//返回true
}
return false;
}
至此就完成了将原生android代码打包成Cordova插件 并能在Cordova插件中调用android原生代码
注意1.android原生代码 直接拷贝的话 到Corodva插件中 是找不到R.layout.XX 或是R.id.XX 的
解决方法
提供工具类 MResource
public class MResource {
public static int getIdByName(Context context, String className, String resName) {
String packageName = context.getPackageName();
int id = 0;
try {
Class r = Class.forName(packageName + ".R");
Class[] classes = r.getClasses();
Class desireClass = null;
for (Class cls : classes) {
if (cls.getName().split("\\$")[1].equals(className)) {
desireClass = cls;
break;
}
}
if (desireClass != null) {
id = desireClass.getField(resName).getInt(desireClass);
}
} catch (Exception e) {
e.printStackTrace();
}
return id;
}
}
然后Android原生Activity 中
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(MResource.getIdByName(this, "layout", "XXXXX"));
initView();
}
public void initView(){
paytextview= (TextView) findViewById(MResource.getIdByName(this, "id","XXXX"));
paytextview.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
}
这样就解决了导入后R.layout.XX 和R.id.XX 找不到问题了
注意2 插件中跳转Android原生actiivty是 不能直接跳转 隐式跳转
Intent intent=new Intent();
intent.setAction("XXXXXXXXXXXXXXXXXXX");
cordova.getActivity().startActivity(intent);
return true;//返回true
相应的原生Activity 注册时
希望对你有所帮助!!!!
更多相关文章
- Android实现OCR扫描识别数字图片之图片扫描识别
- Android 选择图片、上传图片之PictureSelector
- Android Gradle使用详解(三) 之 Android Gradle插件配置详解
- 详谈 Android 高大上的图片加载框架 Glide
- Android中图片实现按钮点击效果
- Android 1比1高仿微信图片选择器(新)
- android实现图片平移、旋转、缩放
- android 显示gif图片