廢話不說phoneGap是什麼很少介紹,官方網站:http://phonegap.com/ html
phoneGap開發IOS插件教程:http://my.oschina.net/jgy/blog/175643 java
在開放過程當中不少會使用到android原生的東西,固然phoneGap也封裝了一些,不過那麼一點點想開發Android程序仍是不夠的……我在開發中APP更新就要在JS中觸發事件調用android方法傳更新的URL過去,使用JAVA更新APP自動打開安裝。 android
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; } }
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); } }
<plugin name="Echo" value="org.apache.cordova.plugin.Echo"/>
cordova.exec(callback, function(err) { callback('Nothing to echo.'); }, "Echo", "echo", ['參數']);
這個也是我最喜歡的,簡單,方便……很少說……上代碼 web
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); }}
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); //注意這裏日誌輸出 } }
window.SM.UpdateApp('http://192.168.0.1'); // 注意這裏的SM.UpdateApp
第二種方法我報錯 apache
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
解決方法: app
super.init();
最後:以上是本人測試成功後以及經驗分享,歡迎吐槽交流!嘎嘎~~~~ ide
做者:FakeMr 郟高陽 ❤犒勞一杯咖啡❤ 測試