色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

h5 傳 json 給app

洪振霞2年前8瀏覽0評論

HTML5是現代化Web技術中的一種主流標準,它在Web應用程序中扮演著重要的角色。在系統架構中,后端往往會使用JSON格式的接口來傳輸數據,而在前端,我們可以使用H5技術來傳送JSON數據給APP使用。

//示例JSON數據
{
"name": "Lucy",
"age": 18,
"birthday": "2003-08-01",
"hobby": [
"sing",
"dance",
"travel"
]
}

在前端中,我們可以使用H5的特性將JSON數據發送到APP端。這個特性是使用JavaSript的window.postMessage()函數實現的。工作原理是將JSON數據序列化后作為一個字符串傳輸給APP端,并通過onmessage函數監聽APP端返回的信息。

//H5發送消息到APP
var data = {
"name": "Lucy",
"age": 18,
"birthday": "2003-08-01",
"hobby": [
"sing",
"dance",
"travel"
]
};
window.postMessage(JSON.stringify(data), '*');
//H5接收APP返回信息
window.addEventListener('message', function(event) {
var result = JSON.parse(event.data);
console.log(result);
})

在APP端,我們需要監聽H5發來的消息,并將JSON數據解析成對象。這里我們使用了WebView的loadUrl()方法將JSON數據通過URL Scheme傳遞給APP,并在APP端通過URL攔截器處理這個請求,將JSON數據解析成對象并傳遞給APP。

//APP監聽H5發來的消息
webView.addJavascriptInterface(new Object() {
@JavascriptInterface
public void sendMsgToApp(String msg) {
Gson gson = new Gson();
People people = gson.fromJson(msg, People.class);
Toast.makeText(MainActivity.this, "姓名:" + people.getName() + " 年齡:" + people.getAge(), Toast.LENGTH_SHORT).show();
}
}, "Android");
//APP處理URL請求
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.startsWith("json:")) {
String msg = Uri.decode(url.substring(5));
view.loadUrl("javascript:window.Android.sendMsgToApp('" + msg + "')");
return true;
} else {
return super.shouldOverrideUrlLoading(view, url);
}
}
});

在H5和APP之間傳輸JSON數據是非常常見的操作。以上示例展示了如何使用H5的window.postMessage()函數將JSON數據傳輸給APP,并在APP端使用WebView實現URL Scheme攔截器解析JSON數據。通過這種方式,H5和APP之間可以輕松、快速地實現數據傳遞,為Web應用程序的開發提供了很大的便利。