phonegap js java_phoneGap开发android,JS调用JAVA方法/插件

前沿

废话不说phoneGap是什么不多介绍,官方网站:外链网址已屏蔽

使用场景

在开放过程中很多会使用到android原生的东西,当然phoneGap也封装了一些,不过那么一点点想开发Android程序还是不够的……我在开发中APP更新就要在JS中触发事件调用android方法传更新的URL过去,使用JAVA更新APP自动打开安装。

方法1:

插件类 Echo.java

public class Echo extends CordovaPlugin{ // 必须继承 CordovaPlugin

@Override

public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {

Log.e("-------------",action);

Log.e("-------------",args.toString());

if (action.equals("echo")) {

}

return false;

}

}

MainActivity.java

public class MainActivity extends DroidGap {

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

super.setIntegerProperty("splashscreen", R.drawable.wandapad_splash);

super.loadUrl("file:///android_asset/www/index.html", 4000);

}

}

在res/xml中添加类注册

JS调用

cordova.exec(callback, function(err) {

callback('Nothing to echo.');

}, "Echo", "echo", ['参数']);

方法2:

这个也是我最喜欢的,简单,方便……不多说……上代码

MainActivity.java

public class MainActivity extends DroidGap {

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

super.init();

appView.getSettings().setJavaScriptEnabled(true);

appView.addJavascriptInterface(new PluginMethod(this, appView), "SM"); // 注意这里一句

super.setIntegerProperty("splashscreen", R.drawable.wandapad_splash);

super.loadUrl("file:///android_asset/www/index.html", 5000);

}}

PluginMethod.java

package com.example;

import android.util.Log;

import android.webkit.WebView;

import android.widget.Toast;

import com.plugin.UpdateApplication;

import org.apache.cordova.DroidGap;

/**

* Created with IntelliJ IDEA.

* User: FakeMr

* Date: 13-7-15

* Time: 下午4:12

* To change this template use File | Settings | File Templates.

*/

public class PluginMethod {

private WebView webView;

private DroidGap droidGap;

public PluginMethod(DroidGap gap, WebView view) {

webView = view;

droidGap = gap;

}

/**

* JS调用 用于更新App

* @param path 更新门店的地址

*/

public void UpdateApp(final String path) {

Log.e("---------------", path); //注意这里日志输出

}

}

JS使用:

window.SM.UpdateApp('外链网址已屏蔽'); // 注意这里的SM.UpdateApp

ERROR:

第二种方法我报错

07-15 08:52:09.035: ERROR/AndroidRuntime(491): FATAL EXCEPTION: main

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example/com.example.MainActivity}: java.lang.NullPointerException

解决方法:

super.init();

最后:以上是本人测试成功后以及经验分享,欢迎吐槽交流!嘎嘎~~~~

作者:FakeMr 郏高阳

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值