gpt4 book ai didi

php - 将 $_POST 数据发送到 Android Webview

转载 作者:行者123 更新时间:2023-11-30 03:52:17 24 4
gpt4 key购买 nike

所以我在 WebView 中有这个 Android 应用程序,它应该将数据传递到服务器(托管站点),不幸的是我不能这样做,所以我需要你的帮助来解决这个问题。

我从该站点获得了大部分代码,因此您可能看起来很熟悉。

所以我有这个 HTML 文件,它启动将数据发送到服务器的功能。

watch_video.html

    var v_id = getUrlVars()["v_id"];

$.ajax({

url: "http://mysite.com/fbtest.php?json_callback=?",
dataType: "jsonp text",
//GET method is used
type: "POST",

//pass the data
data: 'v_id=' + v_id,

//Do not cache the page
cache: false,

//Cross Domain
crossDomain: true,

//success
success: function (html) {
alert(html);
}

因此,在使用跨域的服务器(托管站点)中的 PHP 文件中,代码如下:

<?php
include("includes/db.php");
header('content-type: application/json; charset=utf-8');
header('Access-Control-Allow-Origin: *');

$v_id = ($_POST['v_id']) ?$_POST['v_id'] : $_GET['v_id'];
$dwatch=date("Y-m-d");
$twatch=date("H:i:s");

$query="insert into watched_videos (fb_id,vid,date_watched,time_watched) values('12345','".$v_id."','".$dwatch."','".$twatch."')";
$row = mysql_query($query);
?>

我在本地使用 XAMPP 对此进行了测试,它可以将数据插入数据库。

当我将它安装到 Android 中并执行相同的功能时,它不起作用。

这是我的 MainActivity.java 代码:

package namename.name;

import android.os.Bundle;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.view.KeyEvent;
import android.view.Menu;
import android.webkit.WebSettings.PluginState;
import android.webkit.WebView;


public class MainActivity extends Activity {

@SuppressLint("SetJavaScriptEnabled")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView mWebView = null;
mWebView = (WebView) findViewById(R.id.webtest);
mWebView.getSettings().setPluginState(PluginState.ON);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl("file:///android_asset/www/indexbackup.html");
}


@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
WebView mWebView = null;
mWebView = (WebView) findViewById(R.id.webtest);
if(event.getAction() == KeyEvent.ACTION_DOWN){
switch(keyCode)
{
case KeyEvent.KEYCODE_BACK:
if(mWebView.canGoBack() == true){
mWebView.goBack();
}else{
finish();
}
return true;
}

}
return super.onKeyDown(keyCode, event);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}

}

所以回到我在 WebView 中使用 JSONP 启动该函数之前所说的它不起作用。

我想知道我是否有东西可以放入我的 android 文件中。

如果有人帮助我,我会很高兴。

提前致谢。

最佳答案

问题出在这一行

mWebView.loadUrl("file:///android_asset/www/indexbackup.html");

你必须像浏览器一样提供正确的文件路径

mWebView.loadUrl("http://yoursite/android_asset/www/indexbackup.html");

关于php - 将 $_POST 数据发送到 Android Webview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13945436/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com