一个轻量级的app混合开发框架

网友投稿 830 2022-10-25

一个轻量级的app混合开发框架

一个轻量级的app混合开发框架

jsbridge-hostApp

一个轻量级的app混合开发框架 使用简便 ##1、工程引用姿势 1.1、clone 工程到你本地 1.2、在你自己工程的build.grale 文件中加入依赖 ##2、java代码编写姿势(提供给H5调用的java方法) 2.1 编写任一一个java类引用@WebTag注解 例如

package com.lingyi.simplehostapp;import android.text.TextUtils;import android.webkit.WebView;import android.widget.Toast;import com.google.gson.Gson;import com.lingyi.easybridge.NativeTOJsResult;import com.lingyi.easybridge.ProviderToWeb;import com.lingyi.easybridge.TaskModel;import com.lingyi.easybridge.WebTag;import com.lingyi.easybridge.framework.EasyNativeToJsCallBack;import org.json.JSONException;import org.json.JSONObject;/** * Created by lingyi on 16/9/8. * Copyright © 1994-2016 lingyi™ Inc. All rights reserved. */@WebTag //使用@WebTag注解 标记该类为提供给H5调用的类public class NativeToJsClass { @ProviderToWeb(taskModel = TaskModel.ASYNC) //用@ProviderToWeb注解 标记该方法是为h5调用的方法 并指定参数 同步还是异步 该方法必须带有三个参数 第一个webview 第二个h5传过来的参数为jsonObject类型,第三个参数为回调h5方法 public static void getUserInfo(WebView webView, JSONObject param, final EasyNativeToJsCallBack callback) { String request = param.optString("ask"); Log.i("lingyi","来自h5的请求:"+request); if (null != callback) { User user = new User("lingyi","man","22"); Gson gson = new Gson(); try { JSONObject object = new JSONObject(gson.toJson(user)); callback.sendResult(new NativeTOJsResult(NativeTOJsResult.Status.OK,object)); } catch (JSONException e) { e.printStackTrace(); try { callback.sendResult(new NativeTOJsResult(NativeTOJsResult.Status.ERROR,new JSONObject("{msg:'error'}"))); } catch (JSONException e1) { e1.printStackTrace(); } } } } static class User{ String name; String sex; String age; public String getName() { return TextUtils.isEmpty(name) ? "" : name; } public void setName(String name) { this.name = name; } public String getSex() { return TextUtils.isEmpty(sex) ? "" : sex; } public void setSex(String sex) { this.sex = sex; } public String getAge() { return TextUtils.isEmpty(age) ? "" : age; } public void setAge(String age) { this.age = age; } public User(String name, String sex, String age) { this.name = name; this.sex = sex; this.age = age; } }}

2.2 activity代码编写姿势

public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_activity); EasyFragment fragment = new EasyFragment(); fragment.init(this);//必须先初始化 getFragmentManager().beginTransaction().replace(R.id.content_framelayout,fragment).commit(); fragment.showWebPage("file:///android_asset/hostindex.html"); }}

3.2 然后在javascript中调用EasyHdp.do('service','params',success,erro);需要给四个参数第一个参数service指定调用native代码中的哪个类中的哪个方法 例如NativeToJsClass.getUser Info调用的是NativeToJsClass类中getUserInfo方法,第二个参数params 传递给native的参数是一个Jason字符串 例如{'name':'lingyi'}可为空{},第三个参数为成功的回调,第四个参数为失败的回调,具体如下:

##4白名单管理 4.1 在assets目录下有一个叫做config.xml的文件,它可以设置很多初始化的信息例如

easyHostApp 这是一个轻量级的非常好用的app混合开发框架 对不起!您访问的地址涉嫌违法信息 https://baidu.com

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Aha!设计模式(106)-访问者模式(2)
下一篇:C++核心准则边译边学-I.13 不要直接使用指针传递数组
相关文章

 发表评论

暂时没有评论,来抢沙发吧~