Webview里面的js如何訪問的后臺

Android代碼

package com.example.sss.helloworld;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        WebView mWebView = (WebView) findViewById(R.id.webview);
        WebSettings webSettings = mWebView.getSettings();
        //允許chrome://inspect調試
        WebView.setWebContentsDebuggingEnabled(true);
        webSettings.setJavaScriptEnabled(true);
        mWebView.loadUrl("file:///android_asset/demo.html");
    }
}

node server.js

var http = require('http');
var URL = require('url');
http.createServer(function (req, res) {
    res.writeHead(200, {
        'Content-Type': 'application/json',
        "access-control-allow-origin": "*",
    });
    res.end((parseInt(Math.random()*100)+""));
}).listen(8080);

console.log('Server running on port 8080.');

demo.html

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<button type="button" onclick="loadText();">Load Text</button>
<div id="content"></div>
<script>
    function loadText(){
        var xmlhttp;
        if(window.XMLHttpRequest){
            xmlhttp = new XMLHttpRequest();
        }else{
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }

        xmlhttp.open("get","http://192.168.20.177:8080",true);
        xmlhttp.send();

        xmlhttp.onreadystatechange = function(){
            if(xmlhttp.readyState==4&&xmlhttp.status==200){
                document.getElementById("content").innerHTML = xmlhttp.responseText;
            }
        }

    }
</script>
</body>
</html>

這種常見的混合模式App開發中,js并不能訪問到后臺。那么到底是怎么通信的呢。答案:代理。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,251評論 25 708
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,915評論 18 139
  • 寫文章,確實是讓人著迷的東西,兩個月前下載了簡書APP,一直觀摩欣賞各大才子奇思妙論,難免或多或少有些思想碰撞。雖...
    江流丶閱讀 171評論 0 0
  • 記憶中承載我全部童年的老房子還依稀可現,那是一個偏僻的小山溝——娘子關。 由于那會兒條件差,我們一家五口,只能住在...
    秋日麥田閱讀 561評論 2 2
  • 俗話說得好,“民,以食為天”。食,大若天地外國人重于情趣,中國人則重于飲食。中國人既然能以食為天,則“悠悠萬事,唯...
    慕度閱讀 525評論 0 0