繁体   English   中英

如何从服务器端JavaScript获取值并将其存储在Swift的plist中?

[英]How to get values from server side JavaScript and store them in a plist in Swift?

在Android中,我可以使用此方法来实现。 谁能告诉我如何使用UIWebViewWKWebView在iOS中实现这一WKWebView

@JavascriptInterface
    public boolean RememberMe(String UserData) {
        String str = UserData.replace("\\", "");
        str = str.substring(1, str.length() - 1);

        try {
            clsDBHelper DB = new clsDBHelper(MainActivity.this);
            JSONArray StoreData = DB.GetQueryNew("Select * from UserInfo", null);
            if (StoreData == null) {
                JSONArray Obj = new JSONArray(str);
                Integer TransID = Obj.getJSONObject(0).getInt("TransID");
                Integer OPID = Obj.getJSONObject(0).getInt("OPID");
                Integer ProviderID = Obj.getJSONObject(0).getInt("ProviderID");
                Integer CustomerID = Obj.getJSONObject(0).getInt("CustomerID");
                Integer CompID = Obj.getJSONObject(0).getInt("CompID");
                String UserID = Obj.getJSONObject(0).getString("UserID");
                String Password = Obj.getJSONObject(0).getString("Password");
                String RegMoblileNo = Obj.getJSONObject(0).getString("RegMoblileNo");
                String RegEmialID = Obj.getJSONObject(0).getString("RegEmialID");
                Integer Verifyflag = (Obj.getJSONObject(0).getBoolean("Verifyflag") == true ? 1 : 0);
                Integer IsActive = (Obj.getJSONObject(0).getBoolean("IsActive") == true ? 1 : 0);
                String OTP = Obj.getJSONObject(0).getString("OTP");
                String OTPTimeStamp = Obj.getJSONObject(0).getString("OTPTimeStamp");
                String OperatorID = Obj.getJSONObject(0).getString("OperatorID");
                DB.ExeNonScalerQuery("INSERT INTO UserInfo(TransID,OPID,ProviderID,CustomerID,CompID,UserID,Password,RegMoblileNo,RegEmialID,Verifyflag,IsActive,OTP,OTPTimeStamp,OperatorID)values("
                        + TransID + "," + OPID + "," + ProviderID + "," + CustomerID + "," + CompID + ",'" + UserID + "','" + Password + "','" + RegMoblileNo + "','" + RegEmialID + "'," + Verifyflag + "," + IsActive + ",'" + OTP + "','" + OTPTimeStamp + "','" + OperatorID + "')");
            }
            DB.CloseDB();
        } catch (JSONException e) {
            e.printStackTrace();
            clsDBHelper DB = new clsDBHelper(MainActivity.this);
            DB.GetQueryNew("Delete  from UserInfo", null);
            DB.CloseDB();
        }
        return true;
    }

登录应用程序时,JavaScript中的RememberMe函数会向我发送一个字符串,我需要将其保存在plist中。

在iOS上,通常使用WKScriptMessageHandler处理此WKScriptMessageHandlerhttps : //developer.apple.com/documentation/webkit/wkscriptmessagehandler? WKScriptMessageHandler = WKScriptMessageHandler

本质上,您使用WKWebView,然后在JavaScript中调用此方法:

window.webkit.messageHandlers.notification.postMessage( "message" );

然后在您的应用程序代码中,实现WKScriptMessageHandler ,将其挂接到Web视图中,并使用它来接收消息:

func userContentController( 
    userContentController: WKUserContentController, 
    didReceiveScriptMessage message: WKScriptMessage) {
    // do stuff
}

您可以在NSHipster上详细了解它: http ://nshipster.com/wkwebkit/

似乎您正在从该“ remmeber”方法获取数组,因此将第一个元素保存在var中,然后测试其类型。 如果它的json然后像对NSDictionary一样检索数据

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM