问下各位 Android 大佬, 为什么两个 android App 执行同一个 js,执行结果不同! - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Jione
V2EX    Android

问下各位 Android 大佬, 为什么两个 android App 执行同一个 js,执行结果不同!

  •  
  •   Jione 2021-10-16 10:52:15 +08:00 13654 次点击
    这是一个创建于 1522 天前的主题,其中的信息可能已经有所发展或是发生改变。

    问下各位 Android 大佬, 为什么两个 android App 执行同一个 js,执行结果不同! 我用手机浏览器画的 canvas 转 base64 用 A app 执行 js 画 canvas 转 base64 问题和浏览器画的一致 用 B app 执行 js 画 canvas 转 base64 和浏览器不一致

    执行 js 是用的同样的代码!

    17 条回复    2021-10-18 10:28:28 +08:00
    Jione
        1
    Jione  
    OP
       2021-10-16 10:52:52 +08:00
    问下各位 Android 大佬, 为什么两个 android App 执行同一个 js,执行结果不同!
    我用手机浏览器画的 canvas 转 base64
    用 A app 执行 js 画 canvas 转 base64 没问题和浏览器画的一致
    用 B app 执行 js 画 canvas 转 base64 和浏览器不一致

    执行 js 是用的同样的代码!
    fugui2
        2
    fugui2  
       2021-10-16 11:14:00 +08:00
    show your code
    Jione
        3
    Jione  
    OP
       2021-10-16 13:43:36 +08:00
    @fugui2 应该不是 js 代码和调用 js 的这个代码问题吧,
    MonkeyD1
        4
    MonkeyD1  
       2021-10-16 14:23:02 +08:00
    webview 的内核版本不同? webkit 版本内核 之类的
    InDom
        5
    InDom  
       2021-10-16 14:35:22 +08:00
    之前有个 利用 Canvas 画板计算用户指纹来识别跟踪用户。
    Jione
        6
    Jione  
    OP
       2021-10-16 15:08:19 +08:00
    @MonkeyD1 都对比了是一样的
    Jione
        7
    Jione  
    OP
       2021-10-16 15:09:01 +08:00
    @InDom 对我是正在做这个,但是不知道两个同样的 app 执行两个同样的代码结不一样
    stardust21
        8
    stardust21  
       2021-10-16 16:26:03 +08:00
    原因应该就是 4 楼说的,不同的 APP 用了不同的 webview 内核
    deplivesb
        9
    deplivesb  
       2021-10-16 16:43:57 +08:00   3
    到现在也没见到代码,全靠广大网友猜
    又一个悬丝诊脉
    damao2250
        10
    damao2250  
       2021-10-16 17:48:35 +08:00
    悬丝诊脉
    Jione
        11
    Jione  
    OP
       2021-10-16 18:22:34 +08:00
    @stardust21 两个 app 的运行 js 代码
    String js = "";
    try {
    InputStream is = null;
    is = getAssets().open("main.js");
    int size = is.available();
    byte[] buffer = new byte[size];
    is.read(buffer);
    is.close();
    js = new String(buffer);

    } catch (IOException e) {
    e.printStackTrace();
    }
    JsEvaluator jsEvaluator = new JsEvaluator(this);

    jsEvaluator.callFunction(js,
    new JsCallback() {
    @Override
    public void onResult(String result) {
    // Process result here.
    // This method is called in the UI thread.
    MyLog.loge("result:"+result);
    MyLog.log("md5:" + md5(result));
    }
    @Override
    public void onError(String errorMessage) {
    MyLog.log("errorMessage:" + errorMessage);

    // Process Javascript error here.
    // This method is called in the UI thread.
    }
    }, "webglFp");
    Jione
        12
    Jione  
    OP
       2021-10-16 18:22:47 +08:00
    @deplivesb 代码已发
    WebKit
        13
    WebKit  
       2021-10-17 02:01:13 +08:00 via Android
    手机版本?还是说同一个手机装的两个 app ?如果是国内的 app,可以试试卸载腾讯系软件,然后卸载重装这两个 app 试试
    ruri
        14
    ruri  
       2021-10-17 08:47:52 +08:00
    webview 你就别指望不同设备执行结果会一样了,这也是为什么现在很多 APP 会集成腾讯 x5 的主要原因,就是为了让自己的 APP 在每个设备上运行结果相同,减少开发调试精力。
    其实较新版本的谷歌官方或 AOSP webview 都没什么毛病,但你架不住有些国内厂商会魔改自己手机系统里的 webview,哪怕是微调一些 webview 的默认参数,都会导致你的代码运行效果和原版大不一样。
    lisongeee
        15
    lisongeee  
       2021-10-17 16:07:37 +08:00
    @Jione 你发的是 java 代码,还有 js 代码呢?
    zoharSoul
        16
    zoharSoul  
       2021-10-17 18:41:51 +08:00
    @Jione 要的是 js 代码, Java 代码有啥好看的
    Jione
        17
    Jione  
    OP
       2021-10-18 10:28:28 +08:00
    @ruri 两个 app 都是我自己的 app ,没有集成其他内核
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4974 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 51ms UTC 01:19 PVG 09:19 LAX 17:19 JFK 20:19
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86