问题3. Android如何调用网页(js)方法?
-
Android端直接使用webview的loadUrl(“javascript:”+网页方法名)就可以直接调用的
-
但是方法一多这样就比较容易乱,因此我们可以创建一个专门管理的。
创建生成网页方法的类NativeObject。
问题4. h5页面 判断 移动端是ios、或者Android
- 简称
ua
检测
$(function(){
var u = navigator.userAgent, app = navigator.appVersion;
var isAndroid = u.indexOf(‘Android’) > -1 || u.indexOf(‘Linux’) > -1; //android终端或者uc浏览器
var isiOS = !!u.match(/(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
alert(‘是否是Android:’+isAndroid);
alert(‘是否是iOS:’+isiOS);
if(isAndroid){
$ (“#choose”).attr(‘capture’,‘camera’);
}
});
本例demo下载地址:HybridDemo下载
简介:
混合开发(Hybrid)也有一段时间了,现在闲下来总结一下。
说到混合开发,重要功能有2种,一是网页端调用安卓原生接口或功能,二是安卓原生调用网页功能。
效果图:
Hybrid开发流程:
1、Android端编写方法api,暴露给h5页面调用
创建一个供网页端调用的类,如JSObject
,里面编写供网页调用的方法,记得在方法上面添加@JavascriptInterface
注释,否则在有些SDK版本上使用addJavascriptInterface
方法(下面会用到)绑定JS对象时会报"they will not be visible in API 17"
错误。
package mhwang.com.hybriddemo;
import android.content.Context;
import android.webkit.JavascriptInterface;
import android.widget.Toast;
public class JSObject {
private Context mContext;
public JSObject(Context context) {
mContext = context;
}
@JavascriptInterface
public int add(int a, int b){
return a + b;
}
@JavascriptInterface
public void showToast(String msg){
Toast.makeText(mContext,